Ruby on Rails 3.0.9、RSpec-rails 2、FactoryGirlを使用しています。私は工場協会モデルを述べようとしていますが、私は困っています。FactoryGirlアソシエーションモデルのトラブル:「SystemStackError:スタックレベルが深すぎます」
私は、次のようなfactories/user.rb
のファイルがあります:
FactoryGirl.define do
factory :user, :class => User do
attribute_1
attribute_2
...
association :account, :factory => :users_account, :method => :build, :email => '[email protected]'
end
end
をし、次のようなfactories/users/account.rb
ファイル:
FactoryGirl.define do
factory :users_account, :class => Users::Account do
sequence(:email) {|n| "foo#{n}@bar.com" }
...
end
end
上記の例では、私のスペックファイルで期待どおりに動作しますが、場合factory :users_account
ステートメントでは、コードを追加します。
FactoryGirl.define do
factory :users_account, :class => Users::Account do
sequence(:email) {|n| "foo#{n}@bar.com" }
...
association :user
end
end
私は次のエラーを取得する:
Failure/Error: Unable to find matching line from backtrace
SystemStackError:
stack level too deep
にはどうすればいいの工場 \両側からそのアクセス関連したモデルにその問題を解決することができます(つまり、私のスペックファイルで、私はRoRの関連付けを使用したいですuser.account
およびaccount.user
のようなモデル方法?
P .:私はFactory Girl and has_one質問を読みました。私のケースは、リンクされた質問で説明されたケースに非常に近いです。つまり、has_one
アソシエーション(User
とUsers::Account
クラスの間)もあります。
「User」を持っていて、「Users :: Account」を持っていれば、それは複数であるべきですか、それとも 'User :: Account'かtypoですか? – nowk
@kwon - それはタイプミスではありません。私は 'Users :: Account'クラスを持っています。 – Backo