2012-03-11 3 views
8

Скажем, у меня есть название модели, сохраненный в переменной:Как вызвать метод класса динамически в рубин

"#{class_name.singularize}" 

от другого контроллера я хочу видеть столбцы, заданные для этой модели. Я попытался

send("#{class_name.singularize}.columns") 

но его пытается вызвать Page.columns как метод класса я в настоящее время работает в, а не Page класса. Есть идеи, как это сделать?

ответ

13

constantize Использование:

class_name.singularize.constantize.columns 
+0

неопределенный метод 'constanstize» для "Страница": String (NoMethodError) –

+0

@j_mcnally Потому что я не могу напечатать, это 'constantize'. Обновленный ответ. –

+0

awsome! Большое спасибо, я понятия не имел, что это можно сделать, вы ROCK! –