2015-04-25 4 views
0

Je suis en train de faire le chapitre 10 de enter link description here. Je suis la même erreur mentionné dans enter link description hereNoMethodError: méthode non définie reset_sent_at tutoriel hartle

PasswordResetsTest#test_password_resets: 
NoMethodError: undefined method `reset_sent_at=' for #<User:0xccd47c0> 
    app/models/user.rb:66:in `create_reset_digest' 
    app/controllers/password_resets_controller.rb:12:in `create' 
    test/integration/password_resets_test.rb:17:in `block in <class:PasswordResetsTest>' 

J'essaie de faire ce qui est mentionné dans la réponse. première chose que je faisais était:

rails generate migration add_reset_to_users reset_digest:string reset_sent_at:datetime 

et la réponse a été:

Another migration is already named add_reset_to_users: 

donc je suis sûr que je l'ai fait la migration avant. Ce fichier _add_reset_to_users.rb dans le dossier migrate.

class AddResetToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :reset_digest, :string 
    end 
end 

Alors j'essaie de redémarrer mon serveur rails. (Je ne sais pas si je le fais à droite) en utilisant

rails server 

puis arrêter le serveur. Aucun d'eux n'a travaillé. Je reçois toujours la même erreur.

+0

Avez-vous exécuté la migration de la base de données '$ rake db: migrate'? Il ne devrait pas donner de résultat s'il n'y a pas de migrations en attente. Vérifiez également le fichier de migration dans 'db/migrations' où le nom du fichier se termine par' add_reset_to_users.rb'. – max

+0

Oui, je l'ai ajouté dans mon post. rake db: migrate ne me donne aucune sortie. – Hanna

+0

Essayez 'rake db: test: prepare', il donnera un avertissement de dépréciation mais j'ai parfois constaté que Rails ne parvient pas à maintenir le schéma de test automatiquement – max

Répondre

2

Another migration is already named add_reset_to_users:

Vous avait déjà créé la migration précédemment, comme vous l'avez dit, mais cette migration n'a pas inclure l'ajout de la colonne reset_sent_at.

À ce stade, le plus simple serait de créer une nouvelle migration pour ajouter la colonne manquante.

rails generate migration add_reset_sent_at_to_users reset_sent_at:datetime 
+0

Merci beaucoup! Ça a marché! – Hanna

+0

J'aurais dû repérer celui-là, bonne prise – max