我知道before_filter只适用于Rails中的控制器,但是我希望模型能够这样:任何时候调用模型中的某个方法,我想运行一个方法来确定被调用的方法是否应该运行。从概念上讲,这样的事情:Rails模型“before_filter”?
class Website < ActiveRecord::Base
before_filter :confirm_company
def confirm_company
if self.parent.thing == false?
return false
end
end
def method1
#do stuff
end
end
所以,当我打电话@ website.method1,它会先调用confirm_company,如果我返回false,将不会运行方法1。 Rails是否具有这样的功能?我希望我只是错过了一些东西很明显这里...
你的意思[Active Record的回调(http://guides.rubyonrails.org/active_record_validations_callbacks.html#callbacks-overview)? – Mischa
是的,我想,回调是我需要的。但没有可用的回调可以做我以后的事情。我不保存,验证,初始化...我正在调用一种方法。 –
如果您的条件得到满足,您可以使用代理对象并将代表委托给模型 – apneadiving