Rails - 关于用户选择值的数据库转换

时间:2016-05-29 16:50:39

标签: ruby-on-rails ruby database translate globalize3

在我的rails app上有一个选择框,其值为fuel_types,例如Oil,Gas,Petroleum,Diesel。默认语言是en所以这很好。 当用户将网站更改为法语时,这些数据应显示为法语,当用户提交表单时,数据应该在fr中,但我无法通过使用

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

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

这可以用globalize3 gem吗?

我看到数据库中的静态内容可以使用globalize3进行翻译,但是当用户填写表单时,根据locale变量,它是fr或en,那么数据库将填充en和fr值,这将使搜索几乎不可能数据和流程。

btw :我有一个名为fuel_types的模型,名称为id列,我保留了石油,天然气,石油价值以显示在选择标记中。然后我将它们保存到汽车模型中。

修改

这样你就对了!但是,如果我有,那该怎么办?

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

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

1 个答案:

答案 0 :(得分:1)

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