加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – after_commit实际上运行了吗?

发布时间:2020-12-17 02:52:32 所属栏目:百科 来源:网络整理
导读:我在rails 3.0.8上并尝试使用after_commit回调. 它在这里定义:https://github.com/rails/rails/blob/v3.0.8/activerecord/lib/active_record/transactions.rb#L210 它被称为回调之一:https://github.com/rails/rails/blob/v3.0.8/activerecord/lib/active_
我在rails 3.0.8上并尝试使用after_commit回调.

它在这里定义:https://github.com/rails/rails/blob/v3.0.8/activerecord/lib/active_record/transactions.rb#L210

它被称为回调之一:https://github.com/rails/rails/blob/v3.0.8/activerecord/lib/active_record/callbacks.rb#L22

考虑一下:

class Car < ActiveRecord::Base
  after_commit do
    # this doesn't execute
  end

  after_commit :please_run
  def please_run
    # nor does this
  end
end

任何想法为什么它不起作用?我假设我正确使用它.

解决方法

如果您在测试套件中尝试使用此功能,则必须为该类设置self.use_transactional_fixtures = false.默认情况下,Rails在事务中执行测试套件并在最后执行回滚以进行清理.它使您的测试速度很快,但如果您依赖于自己控制事务或此回调,则它不起作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读