2012-03-11 90 views
8

動態調用類方法說我有保存在一個變量的型號名稱:如何紅寶石

"#{class_name.singularize}" 

從另一個控制器我想看到這個模型中定義的列。我試圖

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

,但其試圖調用Page.columns因爲我目前的工作中,而不是Page類的類的方法。任何想法如何做到這一點?

回答

13

使用constantize

class_name.singularize.constantize.columns 
+0

未定義的方法'constanstize」爲 「頁」:字符串(NoMethodError) – 2012-03-11 06:54:25

+0

@j_mcnally因爲我不會打字,這是'constantize'。更新了答案。 – 2012-03-11 06:55:21

+0

awsome!非常感謝,我不知道這可以做到,你搖滾! – 2012-03-11 07:00:26