spanish rails multi locales language i18n ruby-on-rails ruby localization translation rails-i18n

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