【发布时间】:2016-09-19 00:38:02
【问题描述】:
我有一个simple_form,它有一个带有一系列选项的下拉菜单。我希望将选项保存为整数,但下拉菜单中的文本显示为基于语言环境的字符串。如下:
<option value="1">Option 1</option>
<option value="2">Option 2</option>
我目前在MyModel中有定义为类方法的选项,如下:
def self.options
[['Option 1', 1], ['Option 2', 2]]
end
没有 i18n 我有以下工作:
f.input :dropdown, collection: MyModel::boolean, include_blank: false
添加语言环境,我试过了
f.input :dropdown, collection: t(MyModel::boolean, scope: 'simple_form'), include_blank: false
但这会引发错误:
翻译缺失:en.simple_form.Option 1.1
它看起来好像在翻译中同时查找数组键和值。
有什么建议可以让 i18n 为这个系列工作吗?
【问题讨论】:
-
不确定我是否理解问题所在。为什么不在模型中添加一个回调 before_save 将这些值“1”“2”等转换为整数?如“1”.to_i
-
这里的问题是如何让 i18n 在这种情况下工作。您的 call_back 是保存数据的有用建议。关于 i18n 的任何想法?
-
嗯,也许保持集合不变,但只改变用户的视图会更好?我会发表我的想法。
标签: ruby-on-rails internationalization simple-form rails-i18n