3

初めてモンゴイドを使用していますが、仕様のファクトリで 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 に答える