2

主要文档在调试回调时对其进行了描述,但似乎不存在:

http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

我尝试像示例一样使用它,它返回给我:

ruby-1.8.7-p330 :026 > Device.after_save_callback_chain
NoMethodError: undefined method `after_save_callback_chain' for #<Class:0x104bc1060>
    from /rvm/gems/ruby-1.8.7-p330/gems/activerecord-3.0.5/lib/active_record/base.rb:1008:in `method_missing'
    from (irb):26
4

1 回答 1

3

似乎这种方法在 Rails 3 中消失了。我之前使用过以下方法:

Model._save_callbacks.select { |callback| callback.kind.eql?(:after) }

这将为您提供任何 after_save 回调。然后,您可以通过检查 .filter 属性来获取更多信息,例如正在调用的 proc:

Model._save_callbacks.select { |callback| callback.kind.eql?(:after) }.collect(&:filter)

希望有人有比这更好的答案。

我认为此_#{kind}_callbacks方法是在 ActiveSupport 上定义的,因此您可以使用控制器和我假设的东西做类似的事情。

于 2011-03-25T02:43:24.690 回答