【问题标题】:simple form collection translation简单的表格集合翻译
【发布时间】:2014-02-28 12:38:37
【问题描述】:

使用翻译示例 here,使用 Ruby I18n 翻译 :male, :female 选项,格式为:

查看: _form.html.erb

<%= f.input :gender, collection: [:male, :female] %>

生成的 HTML:

<option>Male</option>
<option>Female</option>

所以在提交时,表单会使用翻译后的值。

如何更改视图代码以提交 ["male", "female"] 值而不是 ["Male", "Female"]?

到目前为止,我最好的镜头非常难看:

<%= f.input :gender, collection: [:male, :female].map{|v| [t("simple_form.options.user.gender.#{v.to_s}", v] %>

【问题讨论】:

  • 你能把控制器中的参数小写吗?
  • @dax,如果用户界面是另一种语言,如葡萄牙语,它会生成 我可以将其小写为男性
  • 啊,好的。我没有真正使用过翻译,有趣的问题

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


【解决方案1】:

在你看来,你应该只使用

<%= f.input :gender, collection: [:male, :female] %> 

在你的 yaml 文件中,你应该有

simple_form:
  options:
    user: (or defaults:)
      gender:
        male: Male
        female: Female

这应该自动翻译成

<option value="male">
  Male
</option>

返回给控制器的是值,而不是翻译后的单词。

如果不是,那就有问题了……

【讨论】:

  • 由于我的模型中有一个 validates_inclusion_of 并且 simple_form 需要这些值作为符号,我错误地认为问题出在视图中而不是模型中。
猜你喜欢
  • 2015-04-09
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 2012-02-25
  • 2019-08-15
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
相关资源
最近更新 更多