Activeddmin i18n。翻译表单字段值

时间:2016-02-03 16:29:48

标签: ruby-on-rails-4 activeadmin

我正在使用 activeadmin (1.0.0.pre2)。

在我的模型中,我有字段,里面装满了标签。我使用方法" translate_name"在应用程序中翻译此标签。在表单字段值中(如此.. i18n for select boxes

activeadmin 中,我使用自定义表单只选择一些字段。

这是我的activeadmin代码......

index do
  column :user
  column :user_surname
  column :service
  column :patient_type
  column :description
  actions
end

form do |f|
  if f.object.errors.size >= 1
    f.inputs "Errors" do
      f.object.errors.full_messages.join('|')
    end
  end
  f.semantic_errors # shows errors on :base
  f.inputs :user
  f.inputs :service
  f.inputs :patient_type
  f.inputs :postal_code
  f.inputs :availability
  f.inputs :date
  f.inputs :estimated_period
  f.inputs :description
  f.actions  # adds the 'Submit' and 'Cancel' buttons
end

服务 y patient_type 与嵌套资源完全相同ActiveAdmin customizing the form for belongs_to

activeadmin 不要翻译此标记。

enter image description here

enter image description here

有什么想法解决这个问题吗?

感谢。

1 个答案:

答案 0 :(得分:1)

在Formtastic中,您可以在模型上定义to_label方法 在渲染选择字段选项时使用。此外,ActiveAdmin将调用 搜索对象名称时的各种方法,例如 display_name。请参阅Index as a Table文档。

to_labeldisplay_name方法添加到您的Service类应该 正确翻译上面突出显示的值:

class Service < ActiveRecord::Base
  def translated_name
    I18n.t(name)
  end

  # method used when creating Formtastic select options
  def to_label
    translated_name
  end

  # method used for displaying model names in ActiveAdmin
  def display_name
    translated_name
  end
end

ActiveAdmin检查对象以获取以下方法以显示名称。最经常 使用name方法。

  • display_name
  • full_name
  • name
  • username
  • login
  • title
  • email
  • to_s