2011-09-13 12 views
1

La fonction de mise à jour fonctionne dans ma console ruby ​​comme indiqué ci-dessous, mais les mises à jour ne sont pas reflétées dans la base de données pour cet utilisateur particulier.Méthode de mise à jour Ruby

Pour tous les autres utilisateurs cela fonctionne parfaitement, et en utilisant update_all fonctionne, mais met également à jour tous les autres utilisateurs. Une idée pourquoi?

ruby-1.9.2-p290 :002 > User.update(51, :introduction => "testupdate") 
    User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 51]] 
    (0.3ms) UPDATE "users" SET "introduction" = 'testupdate', "updated_at" = '2011-09-13 18:53:25.896711' WHERE "users"."id" = 51 

=> #<User id: 51, email: "[email protected]", introduction: "testupdate", created_at: "2011-09-13 18:45:18", updated_at: "2011-09-13 18:53:25"> 

Pour votre information L'utilisateur que je suis en train de mettre à jour est le seul utilisateur créé manuellement via log-in, les autres sont créés comme des comptes factices via seeds.rb

+1

Avez-vous vérifié pour les validations échouées? – meagar

+0

Oui, j'utilise Devise pour l'authentification et j'ai essayé de supprimer toutes les validations. Toujours perplexe. – neon

+0

wow. nevermind - J'ai accidentellement eu un after_save dans le modèle User qui causait réellement un échec de validation. Oops! – neon

Répondre

1

j'avais accidentellement un after_save dans l'utilisateur modèle qui provoquait réellement un échec de validation. Merci @meagar

Questions connexes