Rails 4.2.4 ActiveAdmin Globalize仅显示一个输入

时间:2016-01-03 03:02:05

标签: ruby-on-rails ruby activeadmin rails-i18n globalize

这里我在使用rails 4.2.4 + activeadmin 0.6.6 + rails-i18n 4.0.8 + globalize 4.0.3 + activeadmin-globalize 1.0.0时遇到问题。 我面临的问题如下图所示,它只为我显示一个输入框:

There is only textarea input for content 在联系表中,我应该有更多变量如下:

分贝/迁移/ 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

分贝/迁移/ 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

联系表最初是使用脚手架生成的 :url,:publish,:sequence是所有语言环境中常见的变量 仅限:工具和:内容需要翻译。

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

还有一个相关的事情,因为我还面临着&#34;缺少form_buffers&#34;问题,我已经编辑了activeadmin-globalize gem中的代码,如下面的网页:
https://github.com/maxime-carbonneau/activeadmin-globalize/commit/734f375152982ccde12e7810760a7ab82c8d4a20
但我不确定这个编辑是否会导致问题。

在安装和使用activeadmin-globalize之前,我确信有以下输入框:url,:publish,:sequence。
有没有人有解决方案或知道发生了什么?谢谢!

----------------最终解决方案--------------------
由于不维护activeadmin-globalize,因此大部分功能无法正常工作。我建议使用另一个宝石。

1 个答案:

答案 0 :(得分:0)

对于activeadmin-globalize gem的

In the docs,作者于2014年12月9日 警告用户 他不再维护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