Mongoid不和工厂玩得很好

在我的测试中,Moingoid似乎没有持久地设置嵌入式关系。 在我的用户模型中,我有:

   def vote_on(账单,价值)
    如果my_groups = self.groups
       my_groups.each做| g |
         bill.votes.create(:value => value,:user_id => self.id,:group_id => g.id)
         #结果只有工厂:bill.votes.first.group = nil
         #和bill.votes.first.user = nil !!
         #self.id和g.id在测试期间有很好的价值,他们只是不坚持
      结束
    其他
      提出“此用户没有群组”## {self.full_name}“
    结束
  结束

其他有用的代码可能是:

 ##账单模型
class比尔
    embeds_many:投票

 ##投票模型

投票
  包括Mongoid :: Document
   field:value,:type =>符号#可以是:aye,:nay,:abstain
   #field:group_type,:type => Integer

   belongs_to:用户
   belongs_to:group

   embedded_in:bill

结束

 ## test

  测试“描述性记录应该工作”做
     user1 = Factory.build(:user)
     b = Factory.build(:bill)
     user1.vote_on(b,:aye)#nil值在这里创建!
     tally = b.descriptive_tally
     assert_not_nil计数
  结束

 ## bill工厂

 Factory.define:bill do | f |
   f.bill_html“只是事实 ”
   ...
   f.state“介绍”
   f.text_updated_on DateTime.parse(“2011-06-16 00:00:00 Z”)
   f.text_word_count 2356
   f.votes
结束

 ##用户工厂

 Factory.define:用户执行| u |
    u.email'user @domain.com'
    u.name'用户'
    u.roles_mask 1
    u.password“秘密”
    u.password_confirmation“秘密”
    u.groups {[Factory.build(:group,{:name =>'foreign',:type =>:custom})]}
结束

对我来说这真是令人头疼的事。 也许这是我需要更好地探索和提交的错误。 我的第一个猜测是我在工厂或测试设置中遗漏了一些简单的东西。 此代码适用于开发。 任何帮助是极大的赞赏。

我认为大多数工厂gem和Mongoid存在问题。 我似乎记得有很多问题试图使用Factory Girl和Machinist。

Fabrication似乎是目前推荐的使用Mongoid进行对象生成的标准。 它对我们所有的Mongoid项目都很有效。