I18nで翻訳する必要があります:
Currency.get_active.map{ |t| [I18n.t("currencies.names.long.#{t.name}"), t.id] }
そして、locale.yml(en.ymlの例)では:
# en.yml
currencies:
names:
long:
usd: "US Dollars"
eur: "Euros"
#...
short:
usd: "$US"
eur: "€"
または、翻訳システムのない代替手段:
class Currency < ActiveRecord::Base
LONG_NAMES = {
'EUR' => 'Euros',
'USD' => 'US Dollars',
# ...
}
# ...
end
そして、次のように使用します。
Currency.get_active.collect{ |t| [Currency.LONG_NAMES[t.name], t.id] }
が定数にt.name
含まれていないエントリを返す場合は、次の属性を表示します。LONG_NAMES
t.name
Currency.get_active.collect{ |t| [Currency.LONG_NAMES[t.name] || t.name, t.id] }