我有以下模型
<>之前类投票包括Mongoid:文档包括Mongoid::时间戳field:value,:type =>符号#可以是:aye,:nay,:abstain,:presentbelongs_to:用户belongs_to: polco_groupbelongs_to:比尔之前和比尔<>之前类法案has_many:投票之前
和User
<>之前类用户has_many:投票之前我正在尝试实现以下测试
<>之前b = Bill.new@user1。vote_on (b,明白)Assert_equal: yes, b.voted_on?(@user1)之前这个测试失败了,因为如果我遵循这些步骤,b.votes.all
是空的,但是b.votes
有我们需要的数据。但是,如果我打开rails控制台,我得到b.votes
是[],但是如果我遵循这些步骤,b.votes.all
是完全填充的。我肯定我遗漏了一些简单的东西。什么时候需要b.votes[]和.all ?
我的方法:<>之前# in User.rbDef vote_on(bill, value)# test确保用户是组的成员My_groups = self.joined_groups除非my_groups.empty ?除非bill.voted_on ?(自我)my_groups。各干各的除非投票。创建(:value => value,:user => self,:polco_group => g,:bill => bill)增加"投票无效"结束结束结束# bill.save !其他的引发"no joined_groups for this user"结束结束之前
和
<>之前# in Bill.rbdef voted_on ?(用户)If votes = self.votes.all。Select {|v| v.user == user}选票。v图{| | v.value}当代其他的零结束结束我认为这是问题#1198的结果。设置关系后尝试重新加载对象。
https://github.com/mongoid/mongoid/issues/1198