ruby-on-rails - multi - rails translation interpolation
Acceda al archivo de traducción(i18n) desde el modelo de rieles internos (2)
Lo que tengo en mi modelo es:
def body_color_enum
[
[''Aqua'', ''#009c9c''],
[''Grey'', ''#6d6e71''],
[''Yellow'', ''#ffe600''],
[''White'', ''white'']
]
end
Quiero que estos valores provengan del archivo de traducción ''en.yml''
en:
group:
hero:
hex1: ''#6d6e71''
name1: ''Dark grey''
hex2: ''#ccc''
name2: ''Light grey''
hex3: ''#0099ce''
name3: ''Blue''
hex4: ''#ffffff''
name4: ''White''
He intentado esto:
def body_color_enum
[
[t(''group.hero.name1''), ''#009c9c''],
[''Grey'', ''#6d6e71''],
[''Yellow'', ''#ffe600''],
[''White'', ''white'']
]
end
Pero me sale este error:
undefined method `t'' for #<Group:0x007fabad847ac8>
Entonces, lo que pregunto es cómo puedo acceder a mi archivo local desde el modelo para poder establecer mis valores en el método body_color_enum.
Llamada:
I18n.t
en lugar de simple t
. t
es un método auxiliar solo disponible en las vistas, delegando toda la lógica al módulo I18n
.
ACTUALIZAR:
Como se mencionó en los comentarios, el asistente de vista no solo está delegando en el módulo I18n
, sino que también se asegura de que se puedan usar los ámbitos predeterminados.
# constants
def self.option_enum
[
[ I18n.t(''enum.amount''), ''A'' ],
[ I18n.t(''enum.percentage''), ''P'' ]
]
end