2011-07-19 2 views
2

J'ai des problèmes avec les associations de factory_girl:factory_girl créer vs construire et les associations

Factory.define :account do |f| 
    f.sequence(:email) {|n| "john#{n}@example.com" } 
    f.password "secret" 
    f.confirmed_at 2.days.ago.to_s(:db) 
    f.name "John Doe" 
    f.seller false 
    f.admin false 
end 

Factory.define :request do |f| 
    f.association :account 
    f.message 'Test message.' 
end 

Et voici le problème:

Quand je fais = Factory (: demande), a.account => nul mais quand je fais a = Factory.build (: request), a.account est correct.

Une idée pourquoi ce pourrait être?

Merci

+1

Aucun problème de validation? Que faire si vous faites a.errors après la création? – apneadiving

+0

Il n'y a pas d'erreurs de validation sur le simulateur de demande ... il est sauvegardé mais sans account_id, ce qui me fait me demander s'il y a des erreurs de validation sur request.account, de toute façon je peux vérifier cela? – Cezar

+0

Je ne sais pas non plus pourquoi le SQL ressemble à ceci avant que la requête ne soit créée "SELECT' accounts'. * FROM 'accounts' O WH' accounts'.'email' IS NULL LIMIT 1 " – Cezar

Répondre

0

usine (: demande) appelle la stratégie par défaut, avez-vous changé que quelque part?

+0

Ce n'est pas une réponse, juste un commentaire – apneadiving

+0

change quoi exactement? – Cezar

+0

factory_girl vous donne la possibilité de remplacer la stratégie par défaut utilisée pour construire des objets. Dans tous les cas en regardant le code ci-dessus, êtes-vous sûr de ne pas manquer le champ password_confirmation? – kain

Questions connexes