2012-06-02 2 views
0

У меня есть много разных классов под папкой /lib/ со многими действиями.Вызов метода из внешнего класса соответствия в Rails

Перед сохранением объекта Мне нужно вызвать метод из класса, который соответствует его имени с атрибутом внутри объекта, т.е. заданного это

User.gateway = "something" 

Мне нужно позвонить myfunction из something класса, прежде чем объект будет сохранен ,

Не знаете, как это сделать.

ответ

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 
1

constantize и classify сделают эту работу за вас. Предположим, у вас есть:

class Foo 
end 

и "foo" строка. Вы можете сделать:

"foo".classify.constantize.new.myfunction 
Смежные вопросы