【发布时间】:2016-05-29 16:50:39
【问题描述】:
在我的 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 的模型,这种燃料(属于汽车模型)应该被视为语言环境变量。那么应该用一种语言写到数据库吗?
【问题讨论】:
-
select 适用于键值对数组,其中键应存储到数据库,值是用户在选择中看到的。只需传递 [["gas", "gas_in_french"], ["oil", "oil_in_french"]] 而不是 ["gas","oil"]。
-
还有一件事。我编辑了问题
标签: ruby-on-rails ruby database translate globalize3