Ruby on rails ActiveRecord:在新线程中保存数据后计数错误
我有一个Rails应用程序,它可以做这样的事情(本例简化了): 尽管正在创建新记录,Ruby on rails ActiveRecord:在新线程中保存数据后计数错误,ruby-on-rails,multithreading,activerecord,Ruby On Rails,Multithreading,Activerecord,我有一个Rails应用程序,它可以做这样的事情(本例简化了): 尽管正在创建新记录,new\u count始终与count相同。如果我在线程内检查它,保存后,它是正确的(计数+1) 有什么问题吗?退出线程后如何获得正确的总数 编辑:我通过设置Rspec选项config使其工作。请使用将其设置为false试试 new_count = MyModel.uncached{ MyModel.count} 我通过在“spec\u helper.rb”文件中将Rspec选项config.use\u tr
new\u count
始终与count
相同。如果我在线程内检查它,保存后,它是正确的(计数+1)
有什么问题吗?退出线程后如何获得正确的总数
编辑:我通过设置Rspec选项
config使其工作。请使用
将其设置为false试试
new_count = MyModel.uncached{ MyModel.count}
我通过在“spec\u helper.rb”文件中将Rspec选项
config.use\u transactional\u fixtures
设置为false来实现它。谢谢,但它不起作用。我还尝试了ActiveRecord::Base.connection.clear\u query\u cache
和ActiveRecord::Base.connection.disable\u query\u cache代码>在其他网站上建议的,但仍然没有。当我尝试你的代码时,我没有遇到问题。我怀疑你的拯救一定失败了。在保存后的线程中添加log语句以检查保存状态(例如:Addput m.errors.to_xml
afterm.save
),不过,我通过将RSpec的config.use\u transactional\u fixtures
设置为false使其工作。
new_count = MyModel.uncached{ MyModel.count}