Używam Ruby na Railsach 3.0.9, RSpec-rails 2 i FactoryGirl. Próbuję podać model stowarzyszenia Factory, ale mam kłopoty.Problemy z modelem stowarzyszenia FactoryGirl: "SystemStackError: zbyt duży poziom stosu"
Mam pliku jak factories/user.rb
następujące:
FactoryGirl.define do
factory :user, :class => User do
attribute_1
attribute_2
...
association :account, :factory => :users_account, :method => :build, :email => '[email protected]'
end
end
i plik jak factories/users/account.rb
następujące:
FactoryGirl.define do
factory :users_account, :class => Users::Account do
sequence(:email) {|n| "foo#{n}@bar.com" }
...
end
end
Powyższy przykład działa zgodnie z oczekiwaniami w moich plikach spec ale jeśli w instrukcji factory :users_account
dodaję kod association :user
, aby mieć
FactoryGirl.define do
factory :users_account, :class => Users::Account do
sequence(:email) {|n| "foo#{n}@bar.com" }
...
association :user
end
end
pojawia się następujący błąd:
Failure/Error: Unable to find matching line from backtrace
SystemStackError:
stack level too deep
Jak mogę rozwiązać ten problem tak, aby dostęp do powiązanych modeli z obu stron \ fabryk (czyli w moich plików spec chciałbym użyć stowarzyszenie ROR metody modelowania, takie jak user.account
i account.user
) ?
P.S .: Przeczytałem pytanie Factory Girl and has_one, a moja sprawa jest bardzo zbliżona do przypadku wyjaśnionego w połączonym pytaniu. To znaczy, mam również skojarzenie has_one
(między klasami User
i Users::Account
).
Po prostu ciekawy, masz "użytkownika", a następnie masz "Użytkownicy :: Konto", czy to ma być liczba mnoga, czy powinno to być 'Użytkownik :: Konto" lub literówka? – nowk
@kwon - To nie jest literówka. Mam klasę "Użytkownicy :: Konto". – Backo