gpt4 book ai didi

ruby-on-rails - 为什么记录在我的 Rails 应用程序中消失了?

转载 作者:太空宇宙 更新时间:2023-11-03 16:57:04 24 4
gpt4 key购买 nike

我有两个模型,我们称它们为 A 和 B。创建新的 A 记录有时会触发 B 记录的创建。

class A < ActiveRecord::Base  after_create { |a| B.create_for(a) if a.needs_b? }end

在我的测试文件中有

class TapeTest < ActiveSupport::TestCase  self.use_transactional_fixtures = false  test "something" do    assert_equal(0, B.count)    a = A.create(:foo => "bar")    assert_equal(1, B.count)  endend

并且测试在第二个断言上失败了,即使我将它复制到控制台也是如此。当我在 B.create_for 方法中添加一个 debugger 调用时,确实正在创建 B 记录。它出现在数据库和所有内容中,但是一旦执行返回到 test "something" block ,它就会消失!我关闭了 transactional_fixtures 来尝试解决这个问题,但没有帮助。

编辑:打开事务固定装置实际上解决了这个问题,但破坏的测试比它修复的要多得多。假设它需要关闭。

最佳答案

我不确定到底发生了什么,但我会尝试执行 A.create!(...) 以查看是否引发了导致回滚的异常。

关于ruby-on-rails - 为什么记录在我的 Rails 应用程序中消失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7167431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com