我有一个的has_many:通过关系THROUGH管理层关联玩家队伍

我要对球队表(有点像计数器缓存)一个计数器,告诉我有多少新联想已经出现了自本周开始。当然,反缓存不会工作,因为它总是会给这是有史以来的所有关联。

我试过从管理层模型中更新相关的团队。这永远不会成功。尽管增量相关的团队似乎要保存好,在创建关联之后我的柜台仍然是0。

我也使用观测试过。观察员接到电话如我所料,我能找回球队,但它的任何更新,再一次,没有保存。

我敢肯定,我失去了一些东西明显!什么是轨道方式来实现这一点?

我设置一个的github来说明问题,运行耙规格将失败。

http://github.com/steveybaby/assoc_problem

有帮助吗?

解决方案

在您的规格:

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方法。试着改变该字段的名称,看看你的代码工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top