Activeddmin 国际化。翻译表单字段值

Activeddmin i18n. Translate form fields values

我正在使用 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

service y patient_type 就是这样嵌套的资源 ActiveAdmin customizing the form for belongs_to

activeadmin 不要翻译这个标签。

有解决办法吗?

谢谢。

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

向您的服务添加 to_labeldisplay_name 方法 class 应该 正确翻译上面突出显示的值:

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