私のモデルには次のものがあります:
def body_color_enum
[
['Aqua', '#009c9c'],
['Grey', '#6d6e71'],
['Yellow', '#ffe600'],
['White', 'white']
]
end
これらの値を翻訳ファイル「en.yml」から取得したい
en:
group:
hero:
hex1: '#6d6e71'
name1: 'Dark grey'
hex2: '#ccc'
name2: 'Light grey'
hex3: '#0099ce'
name3: 'Blue'
hex4: '#ffffff'
name4: 'White'
私はこれを試しました:
def body_color_enum
[
[t('group.hero.name1'), '#009c9c'],
['Grey', '#6d6e71'],
['Yellow', '#ffe600'],
['White', 'white']
]
end
しかし、私はこのエラーを受け取ります:
undefined method `t' for #<Group:0x007fabad847ac8>
それで私が求めているのは、body_color_enumメソッドで値を設定できるように、モデルからローカルファイルにアクセスする方法です。
コール:
I18n.t
単純なt
の代わりに。 t
はビューでのみ使用できるヘルパーメソッドで、ロジック全体をI18n
モジュールに委任します。
更新:
コメントで述べたように、ビューヘルパーはI18n
モジュールに委任するだけでなく、デフォルトのスコープも使用できるようにします。
# constants
def self.option_enum
[
[ I18n.t('enum.amount'), 'A' ],
[ I18n.t('enum.percentage'), 'P' ]
]
end