简单的表单集合翻译

时间:2014-02-28 12:38:37

标签: ruby-on-rails ruby simple-form

使用翻译示例 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] %>

1 个答案:

答案 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>

这些值将返回到控制器,而不是翻译的单词。

如果没有,那就有问题......