Mongoid has_many协会和factorygirl

时间:2012-07-17 07:21:25

标签: ruby-on-rails ruby factory-bot

我第一次使用mongoid而且我在工厂为我的规格创建一个has_many关联时遇到了问题。

情景如下:

我有一个小组课程:

class Group
  include Mongoid::Document
  field :name, :type => String
end

我有一个运动课。练习可以属于许多组。练习课目前的定义如下:

class Exercise
  include Mongoid::Document
  field :name, :type => String
  field :description, :type => String

  has_many :groups

  validates_presence_of :name, :description
end

我想使用factorygirl为specs创建实例。我正在努力解决这个问题。

目前我的运动工厂看起来像这样;

FactoryGirl.define do
  factory :exercise do
    name "Preacher curls"
    description "Do something"

    after(:build) do |exercise|
      exercise.groups << FactoryGirl.build(:group)
    end
  end
end

这会导致以下错误:

 NoMethodError:
   undefined method `=' for #<Group _id: 4fbc6f5a26a3181742000004, _type: nil, name: "Arms">

如何正确创建锻炼工厂以添加group_ids?

1 个答案:

答案 0 :(得分:0)

尝试添加

belongs_to :exercise

进入您的小组课程

它应该是这样的:

class Group
  include Mongoid::Document
  field :name, :type => String
  belongs_to :exercise
end