用户可以关注或加入多个群组,我需要按最受欢迎的群体对群组进行排序。
为了有效地做到这一点,我创建了以下回调:
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
完整查看