2011-09-30 40 views
0

我有几个before_saveafter_save需要在Ruby on Rails项目中彼此共享对象实例的回调函数。我认为添加一个名为load_object的方法,我将对象加载到一个实例变量中可以做到这一点。这对before_save验证正常工作,但该对象并没有持续到方法链after_save。无论如何要确保它在两个集合周围,同时保持我的代码干爽?Ruby on Rails:如何让ActiveRecord回调加载回调之间的共享变量

回答

2

这很奇怪,回调在同一个实例上运行,并且任何实例变量都应该仍然可用(尽管没有持久化)。但您可以随时使用around_save回拨

around_save :do_something 

def do_something 
    #beforesave things 
    yield 
    #aftersave things 
end 
相关问题