ruby-on-rails – 强制执行Rails回调的命令

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 强制执行Rails回调的命令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何执行回调顺序?例如,如何确保步骤1在步骤2之前发生:
after_save do
  logger.info "Step 1"
end

after_save do
  logger.info "Step 2"
end

我的实例就是使用第三方宝石,并确保在我自己的回调之前已完成(他们在回调上工作).我必须使用相同的回调(即不能使用前后组合).

谢谢!

解决方法

如果您使用类级别的回调函数,则按照它们定义的顺序调用它们.
class Foo < ActiveRecord::Base

  after_save :step1
  after_save :step2

private

  def step1
    # stuff
  end

  def step2
    # stuff
  end
end

对于第三方宝石,这取决于您如何与宝石进行交互,但是有可能是首先被称之为首先被加载.

我不会建议使用def after_save风格,特别是在处理第三方宝石时.

猜你在找的Ruby相关文章