在Rails中从外部匹配类调用方法

时间:2012-06-02 16:26:14

标签: ruby-on-rails

我在/lib/文件夹下有许多不同的类,有许多操作。

在保存对象之前,我需要从一个类中调用一个方法,该方法将其名称与对象内的属性相匹配,即给定

User.gateway = "something"

我需要在保存对象之前从myfunction类调用something

不知道该怎么做。

2 个答案:

答案 0 :(得分:1)

constantizeclassify将为您完成这项工作。假设你有:

class Foo
end

"foo"字符串。你可以这样做:

"foo".classify.constantize.new.myfunction

答案 1 :(得分:1)

你的问题很模糊,这是你需要的吗?

# user.rb
before_save :myfunction

protected

def myfunction
   g = self.gateway
   case g 
   when String | Symbol 
     begin
       g.classify.constantize.myfunction
     rescue NameError
       # if there is no something class
     end
   else
     # no good value
   end
end

    enter code here