所以我正在建立一个网上商店,我想要两种语言选择,英语和西班牙语。
我正在使用I18n,正如我通常所做的所有静态文本和标题等。
但是,我有一个产品型号可以创建新产品以便在网站上列出。它包含以下字段:name_en和:name_es,:description_en和:description_es等。
当管理员上传新产品时,他们显然需要添加英语和西班牙语文本。
因为我只有2个语言环境,所以我想这就像是
<%= Product.name_"#{I18n.locale.downcase}" %>
但显然这不起作用。我怎么能,或者只是我可以插入一个方法或属性?
我是否错过了一些明显的东西,只是错误的方式或有没有办法按照我的想法做到这一点?
任何帮助都非常感谢。
由于
答案 0 :(得分:1)
您可以使用send
方法。尝试类似:
<%= Product.send("name_#{I18n.locale.downcase}") %>
只需说明一下,以下内容相同:
string = "Hello"
string.upcase
# => "HELLO"
string.send("upcase")
# => "HELLO"
希望能让你朝着正确的方向前进!
祝你好运!