带有counter_cache的habtm mongoid

时间:2011-09-09 12:15:02

标签: ruby-on-rails-3 mongoid

用户可以关注或加入多个群组,我需要按最受欢迎的群体对群组进行排序。

为了有效地做到这一点,我创建了以下回调:

  before_save :update_followers_and_members

  def update_followers_and_members
    self.follower_count = self.followers.size
    self.member_count = self.members.size
  end

我知道mongoid有缓存问题,但我无法测试这个功能。在控制台中我必须调用reload以使一切正常工作,但即使重新加载!我也无法通过测试。我现在正在做愚蠢的事情:

 test "should have one more follower when I add a follower to a group" do
    puts "starting test"
    @cali_group.members.delete_all
    @cali_group.save
    @cali_group.reload
    assert_equal 0, @cali_group.member_count
    @cali_group.members << @user1
    @cali_group.save
    @cali_group.reload
    assert_equal 1, @cali_group.member_count
  end

在我的调试器shell中,我可以让它工作正常,但不能在测试中。我无法将@ cali_group.member_count获得大于0的任何内容。

所有相关文件都可以在https://gist.github.com/1206070

完整查看

0 个答案:

没有答案