1. ホーム
  2. ruby-on-rails

[解決済み] ファクトリーガールでhas_and_belongs_to_manyのアソシエーションを作成する方法

2022-08-15 18:09:04

質問

次のようなものがあります。

class User < ActiveRecord::Base
  has_and_belongs_to_many :companies
end

class Company < ActiveRecord::Base
  has_and_belongs_to_many :users
end

会社とユーザーのファクトリーを双方向の関連付けを含めてどのように定義するのでしょうか?以下は私の試みです。

Factory.define :company do |f|
  f.users{ |users| [users.association :company]}
end

Factory.define :user do |f|
  f.companies{ |companies| [companies.association :user]}
end

今、私は

Factory :user

ファクトリーが自分自身を定義するために再帰的にお互いを使用するため、おそらく驚くことではありませんが、これは無限ループになります。

必要なファクトリーを定義するためのパターンがあるのでしょうか、それとも私が何か根本的に間違ったことをしているのでしょうか。

どのように解決するのですか?

Factorygirl はその後更新され、この問題を解決するためのコールバックが含まれるようになりました。以下をご覧ください。 http://robots.thoughtbot.com/post/254496652/aint-no-calla-back-girl をご覧ください。