Ruby on rails 创建一个灵活、本地化的RubyonRails值列表
我有一个价值观列表(初学者、中级、高级、流利、母语),我想:Ruby on rails 创建一个灵活、本地化的RubyonRails值列表,ruby-on-rails,select,localization,Ruby On Rails,Select,Localization,我有一个价值观列表(初学者、中级、高级、流利、母语),我想: 充当选择列表的模型 充当模型,将ID转换为HTML表中的值 在多个控制器和视图中使用 按照保留业务规则的顺序(按技能级别排序) 在将来的某个时候本地化 有没有办法实现这个列表来满足我的全部或大部分需求?您可以将数组的定义放在/config/locales/some_language.yml中 例如,您可以在en.yml中包含以下内容 en: experience_levels: 1: Beginner
- 充当选择列表的模型
- 充当模型,将ID转换为HTML表中的值
- 在多个控制器和视图中使用
- 按照保留业务规则的顺序(按技能级别排序)
- 在将来的某个时候本地化
有没有办法实现这个列表来满足我的全部或大部分需求?您可以将数组的定义放在/config/locales/some_language.yml中 例如,您可以在en.yml中包含以下内容
en:
experience_levels:
1: Beginner
2: Intermediate
3: Advanced
4: Fluent
4: Native
要将键值对放入辅助对象,应执行以下操作:
def experience_levels
I18n.t(:experience_levels).map { |key, value| [ value, key ] }
end
要在选择框中使用此选项,只需将以下内容放在表单中
<%= f.select :experience_levels, experience_levels %>
如果使用form_标记,则需要以下内容:
<%= select_tag :experience_levels, options_for_select(experience_levels) %>
谢谢,谢谢,谢谢。有没有想过如何将本地化的“选择…”选项添加到列表顶部?可能是0:Choose…?您可以将“Choose”元素添加到数组中。但是,在将辅助对象插入select标记之前,最好在辅助对象中预先添加一个单独的值。通过这种方式,您可以对所有选择标记使用它,并且只有一个地方可以更改它。很酷的示例。这对我有用。但如何在视图模板中读取该数组的值呢?例如:如果我已经从db获得了1号,我想获得“初学者”