1

在我的 Rails 应用程序中有一个选择框,其值为燃料类型,例如石油、天然气、石油、柴油。默认语言是 en 所以这很好。当用户将网站更改为法语时,这些数据应显示为法语,并且当用户提交表单时,数据应为 fr 但是,我无法使用

fr:
  fuel_types:
    oil: ""
    gas: ""
    petroleum: ""  

因为那时数据库数据会混有fr和en语言。然后我必须在显示页面中显示这些数据,如果是 fr 或 en。

这可能globalize3 gem吗?

我看到数据库中的静态内容可以用 globalize3 进行翻译,但是当用户根据语言环境变量填写表单时,它要么是 fr 要么是 en,然后数据库将填充 en 和 fr 值,几乎不可能搜索数据和处理.

顺便说一句:我有一个名为fuel_types 的模型,其名称为id 列,我在其中保留石油、天然气、石油值以显示在选择标签中。然后我将它们保存到汽车模型。

编辑

这样你就对了!但是如果我有呢?

...
 <%= f.collection_select(:fuel_type,  Fuel.all, :name, :name, {}, class: "Select-control u-sizeFull") %>
... 

我有一个名为 Fuel 的模型,这种燃料(属于汽车模型)应该被视为语言环境变量。那么应该用一种语言写到数据库吗?

4

1 回答 1

1

因此,对于已编辑的问题:第三个和第四个参数可以是响应调用的任何内容,因此不要在第四个参数中使用名称proc {|fuel| translate(fuel.name)}或您拥有的任何其他翻译方法,只需在 proc 中调用它即可。

于 2016-05-30T06:56:24.303 回答