8
动态调用类方法说我有保存在一个变量的型号名称:如何红宝石
"#{class_name.singularize}"
从另一个控制器我想看到这个模型中定义的列。我试图
send("#{class_name.singularize}.columns")
,但其试图调用Page.columns
因为我目前的工作中,而不是Page
类的类的方法。任何想法如何做到这一点?
动态调用类方法说我有保存在一个变量的型号名称:如何红宝石
"#{class_name.singularize}"
从另一个控制器我想看到这个模型中定义的列。我试图
send("#{class_name.singularize}.columns")
,但其试图调用Page.columns
因为我目前的工作中,而不是Page
类的类的方法。任何想法如何做到这一点?
使用constantize
:
class_name.singularize.constantize.columns
未定义的方法'constanstize”为 “页”:字符串(NoMethodError) – 2012-03-11 06:54:25
@j_mcnally因为我不会打字,这是'constantize'。更新了答案。 – 2012-03-11 06:55:21
awsome!非常感谢,我不知道这可以做到,你摇滚! – 2012-03-11 07:00:26