Estoy usando Ruby on Rails 3.0.9, RSpec-rails 2 y FactoryGirl. Estoy tratando de establecer un modelo de asociación de Fábrica, pero estoy en problemas.Problema del modelo de asociación FactoryGirl: "SystemStackError: stack level too deep"
Tengo un archivo factories/user.rb
como la siguiente:
FactoryGirl.define do
factory :user, :class => User do
attribute_1
attribute_2
...
association :account, :factory => :users_account, :method => :build, :email => '[email protected]'
end
end
y un archivo factories/users/account.rb
como la siguiente:
FactoryGirl.define do
factory :users_account, :class => Users::Account do
sequence(:email) {|n| "foo#{n}@bar.com" }
...
end
end
El ejemplo anterior funciona como se esperaba en mis archivos de especificaciones, pero si en la declaración factory :users_account
agrego el código association :user
para tener
FactoryGirl.define do
factory :users_account, :class => Users::Account do
sequence(:email) {|n| "foo#{n}@bar.com" }
...
association :user
end
end
me sale el siguiente error:
Failure/Error: Unable to find matching line from backtrace
SystemStackError:
stack level too deep
¿Cómo puedo resolver ese problema, de modo que los modelos de acceso asociada de ambos lados \ fábricas (es decir, en mis archivos spec me gusta usar asociación RoR métodos modelo como user.account
y account.user
) ?
P.S .: Leí la pregunta Factory Girl and has_one y mi caso está muy cerca del caso explicado en la pregunta vinculada. Es decir, tengo una asociación has_one
también (entre las clases User
y Users::Account
).
Simplemente curioso, usted tiene un 'Usuario' y luego tiene una' Users :: Account', ¿se supone que es plural o debería ser 'User :: Account' o un error tipográfico? – nowk
@kwon - No es un error tipográfico. Tengo una clase 'Users :: Account'. – Backo