Rails - 用户选择值的数据库翻译

Rails - Database translation on user selection values

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

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

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

globalize3 gem 这可能吗?

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

btw:我有一个名为 fuel_types 的模型,其中包含名称 id 列,我将石油、天然气、石油值显示在 select 标签中.然后我将它们保存到汽车模型中。

编辑

这样你是对的!。但是如果我有呢;

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

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

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