我正在尝试使用简单形式的i18n功能,这在大多数情况下都很有效。
我唯一的问题是,在一种情况下我想使用数字作为选项值,所以我不能像其他情况那样简单地创建一个符号。现在,我正在使用这个解决方案:
f.input :adm, :as => :select, :collection => [[:adm11 ,"11"],
[:adm00, "00"], [:adm06, "06"], [:adm99, "99"]]
我能以某种方式让simple_form以通常的方式查找adm11等等,所以我可以在翻译文件中保留一个合理的结构吗?
我知道我可以用标准的ruby i18n来做,但我正在寻找更好的方法。
答案 0 :(得分:6)
f.input :adm,
:collection => [[:adm11 ,"11"], [:adm00, "00"], [:adm06, "06"],
[:adm99, "99"]],
:label_method => lambda { |el| t "define.i18n.keys.here.#{el.first}" }
答案 1 :(得分:2)
我认为你不能这样做是因为SimpleForm
中的这一行:
collection_translated = translate_collection if collection_classes == [Symbol]
因此,这意味着SimpleForm
会转换选项,如果它是符号数组。请参阅此处的讨论https://github.com/plataformatec/simple_form/pull/302