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

ruby-on-rails – 在Rails 4中测试一个after_commit挂钩,启用事

发布时间:2020-12-17 02:20:41 所属栏目:百科 来源:网络整理
导读:我有一个Rails 4应用程序,并且正在使用事务夹具,并且希望我的after_commit挂钩在运行我的集成规范时触发. 当然,当你使用事务性工具时,实际上没有提交,所以在Rails 3中有这个补丁:https://gist.github.com/charleseff/1305285,它被制作成一个gem:’test_aft
我有一个Rails 4应用程序,并且正在使用事务夹具,并且希望我的after_commit挂钩在运行我的集成规范时触发.

当然,当你使用事务性工具时,实际上没有提交,所以在Rails 3中有这个补丁:https://gist.github.com/charleseff/1305285,它被制作成一个gem:’test_after_commit’

Rails 4已经足够改变了active_record的内部,因此无法移植Rails 3补丁.

有人在Rails 4中解决了这个问题吗?

解决方法

我通过将以下代码放在spec / support / helpers / test_after_commit.rb中解决了这个问题

require 'active_record/connection_adapters/abstract/transaction'
module ActiveRecord
  module ConnectionAdapters
    class SavepointTransaction < OpenTransaction
      def perform_commit_with_transactional_fixtures
        commit_records if number == 1
        perform_commit_without_transactional_fixtures        
      end

      alias_method_chain :perform_commit,:transactional_fixtures
    end
  end
end

https://gist.github.com/cmaitchison/5168104

(编辑:李大同)

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

    推荐文章
      热点阅读