ruby-on-rails-3 - 为什么即使使用 use_transactional_fixtures = false after_commit 也不运行

标签 ruby-on-rails-3 ruby-on-rails-3.1 commit rspec2 rspec-rails

rspec 中的事务性装置防止 after_commit 被调用,但即使我禁用它们

RSpec.configure do |config|
  config.use_transactional_fixtures = false
end
after_commit callback不运行。

这是一个带有最新 rspec/rails 的 rails 应用程序,我在其上产生了问题:
git://github.com/sheabarton/after_commit_demo.git

最佳答案

解决此问题的一种方法是触发 commit手动回调。例子:

describe SomeModel do
  subject { ... }

  context 'after_commit' do
    after { subject.run_callbacks(:commit) }

    it 'does something' do
      subject.should_receive(:some_message)
    end
  end
end

有点晚了,但希望这对其他人有帮助。

关于ruby-on-rails-3 - 为什么即使使用 use_transactional_fixtures = false after_commit 也不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10656942/

相关文章:

ruby-on-rails - Rails 服务器启动报错 Ubuntu

ruby-on-rails - NameError: 未初始化的常量 ActiveRecord::Associations::Builder::XMLMarkup

git - 如果我暂存一个文件,然后修改它并进行提交和推送,会发生什么?

git - 为什么 git checkout(过去的提交)没有更改我的文件?

ruby-on-rails - nested_form 显示部分两次

git - 更改 Git 中的旧提交消息

ruby-on-rails-3 - 页面请求中 UTF-8 中的无效字节序列

ruby-on-rails - 运行时出现段错误 'rails s'

ruby-on-rails - gmaps4rails 和自动完成谷歌地点 API 不兼容

ruby-on-rails - Rails 3 路由到错误的 Controller