我在/lib/
文件夹下有许多不同的类,有许多操作。
在保存对象之前,我需要从一个类中调用一个方法,该方法将其名称与对象内的属性相匹配,即给定
User.gateway = "something"
我需要在保存对象之前从myfunction
类调用something
。
不知道该怎么做。
答案 0 :(得分:1)
constantize和classify将为您完成这项工作。假设你有:
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