67 votes

comment trouver la cause d'ActiveRecord ROLLBACK

Dans les journaux, je vois un ROLLBACK , mais aucune exception n'est enregistrée. Existe-t-il un moyen de savoir ce qui a causé le ROLLBACK ?

Voici l'extrait du journal :

   Phone Load (0.4ms)  SELECT "phones".* FROM "phones" WHERE "phones"."id" = $1 LIMIT 1  [["id", 980190963]]
   (0.2ms)  BEGIN
  User Load (0.4ms)  SELECT "users".* FROM "users" WHERE "users"."phone_id" = 980190963 LIMIT 1
   (0.2ms)  ROLLBACK
  Phone Load (0.4ms)  SELECT "phones".* FROM "phones" WHERE "phones"."id" = $1 LIMIT 1  [["id", 980190963]]
  User Load (0.4ms)  SELECT "users".* FROM "users" WHERE "users"."phone_id" = 980190963 LIMIT 1

109voto

NitinJ Points 1531

enregistrer l'enregistrement avec BANG '!' il fera donc une erreur d'exécution et vous saurez où cela se passe

50voto

DanneManne Points 13408

Une façon consiste à écrire manuellement des informations dans le journal. Essayez quelque chose comme ceci à partir de votre contrôleur :

 Rails.logger.info(@your_object.errors.inspect) 

Cela devrait afficher le contenu de toutes les validations qui ont échoué.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X