How can one enforce an order of callbacks? For example, how do you ensure that Step 1 happens before Step 2:
after_save d开发者_StackOverflowo
  logger.info "Step 1"
end
after_save do
  logger.info "Step 2"
end
My actual example relates to using third party gems and ensuring that they have completed (they work on callbacks) before my own callbacks. I must use the same callback (i.e. cannot use a before and after combination). 
Thanks!
If you use class-level callbacks, they are called in the order they are defined.
class Foo < ActiveRecord::Base
  after_save :step1
  after_save :step2
private
  def step1
    # stuff
  end
  def step2
    # stuff
  end
end
For the third-party gem, it depends on how you interact with the gem, but odds are they will be called first because they were loaded first.
I would not recommend using the def after_save style at all, particularly when dealing with a third-party gem.
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论