0

我有一个遗留数据库,其中包含一个国家/地区表,该国家/地区具有不同语言的国家/地区名称。

这些列是:

country_de
country_en
country_fr
country_it

我的应用程序使用 i18n.locale,现在我想用特定的语言环境参数填充国家 collection_select。

我知道我可以使用简单的 if else 或 switch 并静态设置参数但是有没有办法在一行中做到这一点?

英语的工作示例:

<%= f.collection_select :country_id, Country.order('country_en ASC'), :id, :country_en, {prompt: t("select_country")} %>

我目前正在尝试但无法正常工作的是:

<%= f.collection_select :country_id, Country.order('country_'+locale.to_s+' ASC'), :id, "country_"+locale.to_s+"".to_sym , {prompt: t("select_country")} %>

语言环境将是de, en, it, 或fr当然。

我的错误是:

no implicit conversion of Symbol into String

谢谢您的帮助

4

1 回答 1

1

代替:

"country_"+locale.to_s+"".to_sym

和:

"country_#{locale}".to_sym

更好地使用字符串插值,它隐式调用 to_s

于 2013-11-08T10:58:40.490 回答