2017-07-18 4 views
1

J'ai une application Rails 4.2 et j'aimerais conserver l'historique d'audit des tags en utilisant PaperTrail.Rails: comment activer l'audit PaperTrail pour les tags

Idéalement, les étiquettes seraient consignées comme s'il s'agissait simplement d'un attribut du modèle étiqueté, c'est-à-dire le modèle n ° tag_list.

J'ai permis l'exploitation forestière en mettant de ce marquages ​​dans un initialiseur:

module ActsAsTaggableOn 
    class Tagging 
    has_paper_trail 
    end 
end 

... Cela ne crée des versions pour le marquage, mais ils ne me donne pas le comportement souhaité qui est d'avoir les balises apparaissent simplement comme un attribut tag_list du modèle étiqueté.

+0

Deux suggestions: 1. utiliser Version Metatadata (https://github.com/airblade/paper_trail#4c-storing-m etadata) 2. utiliser le suivi d'association (https://github.com/airblade/paper_trail#4b-associations) –

Répondre

0

Il est probablement logique d'inclure les associations de versioning

PaperTrail.config.track_associations = true 

après cela, vous pouvez le faire par exemple

subject.versions.last.reify(has_many: true) 

si vous avez besoin « liste_balise », vous pouvez écrire un wrapper qui retourne la liste que vous besoin

def tag_list 
    tagging.pluck(:title) #for_example 
end