2016-02-05 1 views
0

J'utilise la gemme paper_trail pour un projet de rails. (ruby 2.3, rails 4.2.5)paper_trail gem - Impossible de suivre l'événement destroy

paper_trail ne suit pas les événements :destroy dans mon application rails. Lors de l'examen, le modèle de version avec l'événement destroy ne semble pas enregistré car il a une relation avec le modèle qu'il doit suivre et qui est maintenant inexistant (nous enregistrons un événement destroy, d'où il est intentionnel que le modèle est inexistant en ce moment).

Voici comment j'ai essayé de se placer derrière ceci:

Papertrail a un modèle appelé Version. Lorsque je définis un point d'arrêt at the point où l'instance Version avec l'événement destroy doit être enregistré, je peux voir que le modèle ne valide pas. Je reçois ce message lorsque je tente de sauver le modèle de la version à ce moment:

ActiveRecord::RecordInvalid: Validation failed: Item can't be blank

Quand je regarde ce que les validateurs appartiennent au modèle de version que je peux voir que :item est un attribut qui est validé contre:

[<ActiveRecord::Validations::PresenceValidator:0x007fe90cb3be40 @attributes=[:event], @options={}>, 
<ActiveRecord::Validations::PresenceValidator:0x007fe9044c82a0 @attributes=[:event], @options={}>, 
<ActiveRecord::Validations::PresenceValidator:0x007fe9044cbce8 @attributes=[:item_type], @options={}>, 
<ActiveRecord::Validations::PresenceValidator:0x007fe90e022f20 @attributes=[:item], @options={}>] 

Y at-il quelque chose qui me manque ici? Mon modèle activerecord est vraiment simple:

class ClientNote < ActiveRecord::Base 
    has_paper_trail 
end 

Répondre

0

Droite. Vous devez comprendre que je suis encore relativement nouveau à la magie des rails.

Apparemment il is a gem qui ajoute automatiquement des validateurs aux modèles de rails en fonction du schéma. C'est ce qui a empêché la gemme paper_trail de fonctionner pour moi.