为下拉列表翻译activerecord集合

时间:2014-03-05 09:05:22

标签: ruby-on-rails activerecord internationalization

在模型中我有一些状态

STATES = ["in_progress", "active", "archived"]

在我的表单中,我想要下拉/选择

In Progress, Active, Archived  for english 

ชำระ , ขัน , ยื่น in Thai 

处理此问题的最佳方法是什么?

我想到的一个选项是以下

def self.states
  @states = {}
  STATES.each do |s|
    @states[s] = I18n.t(s)
  end
  @states
end

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

这支持simple_form:

在您看来,您应该只使用

<%= f.input :state, collection: ["in_progress", "active", "archived"] %> 

在您的yaml文件中,您应该

simple_form:
  options:
    defaults:
      state:
        in_progress: In progress
        active: Active
        archived: Archived