【发布时间】:2012-05-01 13:22:49
【问题描述】:
我知道 before_filter 仅适用于 Rails 中的控制器,但我希望对模型进行这样的处理:每当调用模型中的方法时,我想运行一个方法来确定被调用的方法是否应该跑。从概念上讲,是这样的:
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,就不会运行method1。 Rails 有这样的功能吗?我希望我只是在这里错过了一些明显的东西......
【问题讨论】:
-
你的意思是Active Record Callbacks?
-
是的,我想我需要一个回调。但是没有一个可用的回调可以做我所追求的。我不是在保存、验证、初始化……我在调用一个方法。
-
如果满足您的条件,您可以使用代理对象并委托给模型
-
apneadiving - 你能提供更多细节吗?不知道你的意思...
标签: ruby-on-rails ruby-on-rails-3 activerecord callback