Ruby on rails ActiveRecord:在新线程中保存数据后计数错误

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

我有一个Rails应用程序,它可以做这样的事情(本例简化了):

尽管正在创建新记录,
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语句以检查保存状态(例如:Add
put m.errors.to_xml
after
m.save
),不过,我通过将RSpec的
config.use\u transactional\u fixtures
设置为false使其工作。
new_count = MyModel.uncached{ MyModel.count}