3

我第一次使用 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 为规格创建实例。我正在努力解决如何做到这一点。

目前我的运动工厂是这样的;

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?

4

1 回答 1

0

尝试添加

belongs_to :exercise

进入您的小组课程

它应该如下所示:

class Group
  include Mongoid::Document
  field :name, :type => String
  belongs_to :exercise
end
于 2012-07-17T09:40:26.840 回答