Ce que j'ai dans mon modèle c'est:
def body_color_enum
[
['Aqua', '#009c9c'],
['Grey', '#6d6e71'],
['Yellow', '#ffe600'],
['White', 'white']
]
end
Je veux que ces valeurs proviennent du fichier de traduction 'en.yml'
en:
group:
hero:
hex1: '#6d6e71'
name1: 'Dark grey'
hex2: '#ccc'
name2: 'Light grey'
hex3: '#0099ce'
name3: 'Blue'
hex4: '#ffffff'
name4: 'White'
J'ai essayé ceci:
def body_color_enum
[
[t('group.hero.name1'), '#009c9c'],
['Grey', '#6d6e71'],
['Yellow', '#ffe600'],
['White', 'white']
]
end
Mais je reçois cette erreur:
undefined method `t' for #<Group:0x007fabad847ac8>
Donc, ce que je demande, c'est comment puis-je accéder à mon fichier local à partir du modèle afin que je puisse définir mes valeurs dans la méthode body_color_enum.
Appel:
I18n.t
au lieu de simple t
. t
est une méthode d'assistance uniquement disponible dans les vues, déléguant toute la logique à I18n
module.
METTRE À JOUR:
Comme mentionné dans les commentaires, l'aide à la vue ne délègue pas seulement à I18n
module, il s'assure que vous pouvez également utiliser une étendue par défaut.
# constants
def self.option_enum
[
[ I18n.t('enum.amount'), 'A' ],
[ I18n.t('enum.percentage'), 'P' ]
]
end