2010-08-27 4 views
4

J'utilise Rails 3 rc, Factory Girl et Rspec, et Authlogic. Est-il possible ou la raison pour laquelle cela se produirait:Rails 3 et Factory Girl créant un utilisateur uniquement si les attributs sont passés

Lorsque je crée un utilisateur comme ceci:

@user = Factory(:user) 

Je reçois un problème avec la confirmation de mot de passe étant « trop court ».

mon factories.rb est

Factory.define :user do |u| 
     u.username "Test User" 
     u.email  "[email protected]" 
     u.password "aoeuaoeu" 
     u.password_confirmation "aoeuaoeu" 
     #u.password_confirmation {|u| u.password} 
    end 

Mais quand je crée un comme je passe: mot de passe et: password_confirmation manuellement, cela fonctionne très bien.

@user = Factory(:user, :password => "aoeuaoeu", 
         :password_confirmation => "aoeuaoeu") 

Est-ce que quelqu'un a une idée de ce qui pourrait être à l'origine?

+0

Vous pro Un appel attr_protected est quelque part caché dans le champ password_confirmation. –

+0

Ce n'est pas attr_protected - Factory Girl utilise des setters – psyho

Répondre

0

Cela semble similaire au problème de la personne ici avait:

Authlogic and password and password confirmation attributes - inaccessible?

Le mot de passe et la confirmation doit être transmis dans les attributs de hachage comme ceci:

before(:each) do 
    @attr = { 
    :name => "Example User", 
    :email => "[email protected]", 
    :password => "foobar", 
    :password_confirmation => "foobar" 
    } 
end 

Pour plus d'informations, voir:

http://railstutorial.org/chapters/modeling-and-viewing-users-two#top

Questions connexes