使用翻译示例 here ,使用Ruby I18n翻译:male,:female选项,表单将为:
查看: _form.html.erb
<%= f.input :gender, collection: [:male, :female] %>
生成的HTML:
<option>Male</option>
<option>Female</option>
因此,在提交时,表单会使用已翻译的值。
如何更改视图代码以提交[“男性”,“女性”]值而不是[“男性”,“女性”]?
到目前为止,我最好的拍摄非常难看:
<%= f.input :gender, collection: [:male, :female].map{|v| [t("simple_form.options.user.gender.#{v.to_s}", v] %>
答案 0 :(得分:3)
在您看来,您应该只使用
<%= f.input :gender, collection: [:male, :female] %>
在您的yaml文件中,您应该
simple_form:
options:
user: (or defaults:)
gender:
male: Male
female: Female
这应该自动转换为
<option value="male">
Male
</option>
这些值将返回到控制器,而不是翻译的单词。
如果没有,那就有问题......