Ruby on rails 3 带计数器缓存的habtm mongoid

Ruby on rails 3 带计数器缓存的habtm mongoid,ruby-on-rails-3,mongoid,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 保存前:更新\u followers\u和\u成员 de

用户可以跟随或加入许多组,我需要按最流行的组对组进行排序

为了有效地执行此操作,我创建了以下回调:

before_save :update_followers_and_members def update_followers_and_members self.follower_count = self.followers.size self.member_count = self.members.size end 保存前:更新\u followers\u和\u成员 def更新_followers_和_成员 self.followers\u count=self.followers.size self.members\u count=self.members.size 终止 我知道mongoid存在缓存问题,但我无法测试此功能。在控制台中,我必须调用reload以使一切正常工作,但即使使用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 测试“当我向一个组添加一个跟随者时,应该有一个以上的跟随者”do “启动测试” @cali_group.members.delete_all @卡利欧集团 @卡利欧集团 断言等于0,@cali\u group.member\u count
@cali_group.members您是否尝试过使用
关系ID
?也就是说,
self.member\u count=self.member\u ids.size
,我不确定这是否能解决问题,但它有明显的好处,不触发查询并实例化许多成员文档。好主意——是的,我喜欢,但它不能解决我的问题