从连接表模型更新的相关记录
-
20-09-2019 - |
题
我有一个的has_many:通过关系THROUGH管理层关联玩家队伍
我要对球队表(有点像计数器缓存)一个计数器,告诉我有多少新联想已经出现了自本周开始。当然,反缓存不会工作,因为它总是会给这是有史以来的所有关联。
我试过从管理层模型中更新相关的团队。这永远不会成功。尽管增量相关的团队似乎要保存好,在创建关联之后我的柜台仍然是0。
我也使用观测试过。观察员接到电话如我所料,我能找回球队,但它的任何更新,再一次,没有保存。
我敢肯定,我失去了一些东西明显!什么是轨道方式来实现这一点?
我设置一个的github来说明问题,运行耙规格将失败。
解决方案
在您的规格:
fanteam_spec.rb
it "should be able to create a fanteam" do
@fanteam.save
@fanteam.changes.should be(0)
@fanteam.should be_valid
@fanteam.players << Factory.build(:player)
@fanteam.reload # this is what you are forgetting
@fanteam.changes.should be(1)
end
基本上您的观察者更新相同的记录,但不相同的对象。
其他提示
我怀疑的问题是,你命名的计数器字段changes
,这已经是自上次保存检查记录的更改的属性一个ActiveRecord方法。试着改变该字段的名称,看看你的代码工作。
不隶属于 StackOverflow