Rails 4.2.4 ActiveAdmin Globalize 仅显示一个输入
Rails 4.2.4 ActiveAdmin Globalize show one input only
我在使用 rails 4.2.4 + activeadmin 0.6.6 + rails-i18n 4.0.8 + globalize 4.0.3 + activeadmin-globalize 1.0.0 时遇到问题。
我遇到的问题如下图所示,它只为我显示了一个输入框:
在联系人 table 中,我应该有更多的变量如下:
db/migrate/XXXXXXXXX_create_contacts.rb
class CreateContacts < ActiveRecord::Migration
def up
create_table :contacts do |t|
t.string :url
t.boolean :publish, :default => false
t.integer :sequence
t.timestamps null: false
end
end
def down
drop_table :contacts
end
end
db/migrate/XXXXXXXXX_translate_for_contacts.rb
class TranslateForContact < ActiveRecord::Migration
def up
Contact.create_translation_table! :tool => :string, :content => :text
end
def down
Contact.drop_translation_table!
end
end
联系人table最初是使用脚手架生成的。
:url, :publish, :sequence 是在所有语言环境中通用的变量。
只有 :tool 和 :content 需要翻译。
在app/models/contact.rb
class Contact < ActiveRecord::Base
active_admin_translates :tool, :content do
validates_presence_of :tool, :content
end
translates :tool, :content
end
在app/admin/contact.rb
ActiveAdmin.register Contact do
permit_params :url, :tool, :content, :publish, :sequence, translations_attributes: [:id, :locale, :tool, :content]
index do
translation_status
default_actions
end
form do |f|
f.translated_inputs "Translated fields", switch_locale: false do |t|
t.input :tool
t.input :content
end
f.actions
end
end
还有一个相关的事情,因为我也面临 "missing form_buffers" 问题,我已经在 activeadmin-globalize gem 中编辑代码如下网页:
https://github.com/maxime-carbonneau/activeadmin-globalize/commit/734f375152982ccde12e7810760a7ab82c8d4a20
但我不确定此编辑是否会导致问题。
在我安装和使用 activeadmin-globalize 之前,我确定有 :url、:publish、:sequence.
的输入框
有没有人有解决方案或知道发生了什么事?谢谢!
----------------最终解决方案--------------------
由于activeadmin-globalize无人维护,大部分功能无法正常使用。我建议使用另一个 gem。
In the docs为activeadmin-globalizegem,作者于2014年12月9日告诫网友 他不再维护 gem 并按您的意愿使用它。您可能需要考虑删除 gem.
但是,就 activeadmin 而言,我认为您在页面上看不到任何其他表单输入的原因是您没有将它们包含在下面的代码中
# app/admin/contact.rb
...
form do |f|
f.translated_inputs "Translated fields", switch_locale: false do |t|
t.input :tool
t.input :content
end
f.actions
end
如果您想将它们重新包含在其中,您将需要完全删除整个代码块并让 activeadmin 为您创建默认表单输入,或者您可以单独将您的输入重新添加到
# app/admin/contact.rb
...
form do |f|
f.translated_inputs "Translated fields", switch_locale: false do |t|
t.input :url
t.input :tool
t.input :content
t.input :publish
...
end
f.actions
end
我在使用 rails 4.2.4 + activeadmin 0.6.6 + rails-i18n 4.0.8 + globalize 4.0.3 + activeadmin-globalize 1.0.0 时遇到问题。 我遇到的问题如下图所示,它只为我显示了一个输入框:
db/migrate/XXXXXXXXX_create_contacts.rb
class CreateContacts < ActiveRecord::Migration
def up
create_table :contacts do |t|
t.string :url
t.boolean :publish, :default => false
t.integer :sequence
t.timestamps null: false
end
end
def down
drop_table :contacts
end
end
db/migrate/XXXXXXXXX_translate_for_contacts.rb
class TranslateForContact < ActiveRecord::Migration
def up
Contact.create_translation_table! :tool => :string, :content => :text
end
def down
Contact.drop_translation_table!
end
end
联系人table最初是使用脚手架生成的。
:url, :publish, :sequence 是在所有语言环境中通用的变量。
只有 :tool 和 :content 需要翻译。
在app/models/contact.rb
class Contact < ActiveRecord::Base
active_admin_translates :tool, :content do
validates_presence_of :tool, :content
end
translates :tool, :content
end
在app/admin/contact.rb
ActiveAdmin.register Contact do
permit_params :url, :tool, :content, :publish, :sequence, translations_attributes: [:id, :locale, :tool, :content]
index do
translation_status
default_actions
end
form do |f|
f.translated_inputs "Translated fields", switch_locale: false do |t|
t.input :tool
t.input :content
end
f.actions
end
end
还有一个相关的事情,因为我也面临 "missing form_buffers" 问题,我已经在 activeadmin-globalize gem 中编辑代码如下网页:
https://github.com/maxime-carbonneau/activeadmin-globalize/commit/734f375152982ccde12e7810760a7ab82c8d4a20
但我不确定此编辑是否会导致问题。
在我安装和使用 activeadmin-globalize 之前,我确定有 :url、:publish、:sequence.
的输入框
有没有人有解决方案或知道发生了什么事?谢谢!
----------------最终解决方案--------------------
由于activeadmin-globalize无人维护,大部分功能无法正常使用。我建议使用另一个 gem。
In the docs为activeadmin-globalizegem,作者于2014年12月9日告诫网友 他不再维护 gem 并按您的意愿使用它。您可能需要考虑删除 gem.
但是,就 activeadmin 而言,我认为您在页面上看不到任何其他表单输入的原因是您没有将它们包含在下面的代码中
# app/admin/contact.rb
...
form do |f|
f.translated_inputs "Translated fields", switch_locale: false do |t|
t.input :tool
t.input :content
end
f.actions
end
如果您想将它们重新包含在其中,您将需要完全删除整个代码块并让 activeadmin 为您创建默认表单输入,或者您可以单独将您的输入重新添加到
# app/admin/contact.rb
...
form do |f|
f.translated_inputs "Translated fields", switch_locale: false do |t|
t.input :url
t.input :tool
t.input :content
t.input :publish
...
end
f.actions
end