2010-07-14 3 views
1

Я добавил некоторые константы к модели сказать MyModel.rb, как показано ниже.Rails константы модели с хешем

MY_CONST = { 
    :foo =>"Some Name for Foo", 
    :bar =>"Some Name for Bar" 
    } 

Также я накопил строка foo как значение столбца в записи таблицы.

@m = MyModel.find(1) 
@m.column_name #=> foo 

Теперь на мой взгляд, мне нужно, чтобы показать «Some Name для Foo», как выход для @m.column_name вместо foo

Я попытался MyModel::MY_CONST[:foo] и печатает "Some Name for Foo" как выход. Но я не знаю, как пройти @m.column_name до MyModel::MY_CONST[....] динамически.

ответ

2

Попробуйте

MyModel::MY_CONST[@m.column_name] 

или

MyModel::MY_CONST[@m.column_name.to_sym] 
+0

Я попытался 'MyModel :: MY_CONST [@ m.column_name]' он никогда не работал для меня, (именно поэтому я разместил вопрос) Но ' MyModel :: MY_CONST [@ m.column_name.to_sym] 'работает, спасибо большое. – randika

+0

, если вы хотите запустить 'MyModel :: MY_CONST [@ m.column_name]' change ': foo =>" Some Name for Foo ",' to '" foo "=>" Some Name for Foo ", ' – Salil

+0

Спасибо много Салил. Теперь я понимаю, я никогда об этом не думал. – randika

Смежные вопросы