I18n根据区域设置调用不同的模型属性?

时间:2015-04-22 13:29:55

标签: ruby-on-rails ruby rails-i18n

所以我正在建立一个网上商店,我想要两种语言选择,英语和西班牙语。

我正在使用I18n,正如我通常所做的所有静态文本和标题等。

但是,我有一个产品型号可以创建新产品以便在网站上列出。它包含以下字段:name_en和:name_es,:description_en和:description_es等。

当管理员上传新产品时,他们显然需要添加英语和西班牙语文本。

因为我只有2个语言环境,所以我想这就像是

    <%= Product.name_"#{I18n.locale.downcase}" %>

但显然这不起作用。我怎么能,或者只是我可以插入一个方法或属性?

我是否错过了一些明显的东西,只是错误的方式或有没有办法按照我的想法做到这一点?

任何帮助都非常感谢。

由于

1 个答案:

答案 0 :(得分:1)

您可以使用send方法。尝试类似:

<%= Product.send("name_#{I18n.locale.downcase}") %>

只需说明一下,以下内容相同:

string = "Hello"

string.upcase
# => "HELLO"

string.send("upcase")
# => "HELLO"

希望能让你朝着正确的方向前进!

祝你好运!