2009-10-29 6 views
2

J'utilise la gemme acts_as_audited avec mon application. (Excellent gem pour suivre les changements d'objets du modèle)acts_as_audited. Comment puis-je ajouter une colonne "commentaire"

On m'a demandé de supporter l'association d'un commentaire de texte avec chaque enregistrement d'Audit (fonctionnalité similaire à svn commit). Et je suis perplexe sur la façon d'accomplir cela.

Par exemple. Disons que j'ai un formulaire d'adresse, et l'utilisateur met à jour la ville et l'État, en frappant sauf je lui demande de fournir un commentaire. J'aimerais que cette information de commentaire soit associée à l'enregistrement d'audit créé.

Avez-vous du sens?

Merci pour votre aide,

Jonathan

Répondre

7

Je pensais que ce serait une chose utile. J'ai donc bifurqué et patché le plugin moi-même.

Modifier Ma branche a été fusionnée dans le référentiel officiel acts_as_audited. La documentation d'utilisation contenue dans ce post est désormais applicable à vanilla acts_as_audited. J'ai changé les liens dans ce post pour pointer là. Obtenez le référentiel officiel car le mien ne sera pas mis à jour avec les correctifs en amont. J'ai mis à jour la documentation d'utilisation dans cet article pour refléter les améliorations.

Installer comme un plug-in:

rails_root$ script/plugin install git://github.com/collectiveidea/acts_as_audited.git 

Utilisation ne change pas vraiment de la vanille acts_as_audited.

acts_as_audited prend une option supplémentaire maintenant. : require_comment, qui, si elle est true, bloque la création, la mise à jour ou la destruction d'un modèle audité, à moins qu'un commentaire ne soit fourni.

Pour ajouter un commentaire à un audit, utilisez model.audit_comment= "My Comment" avant de créer/mettre à jour/détruire. Audit_comment peut aussi être assigné en masse, ce qui simplifie l'ajout d'un champ de commentaire à n'importe quelle forme.

Avant de pouvoir utiliser mon gem/plugin, vous devez mettre à jour la table d'audit pour qu'elle contienne une colonne de commentaires. Si vous effectuez une mise à niveau à partir d'une ancienne version de acts_as_audited qui n'a pas de champ de commentaires sur la table d'audit, mettez à jour le plugin, puis exécutez script/generate audited_migration_update update_audits_table. Sinon, vous êtes prêt à partir. Avec le gem/plugin tout ce qui aurait besoin de changer en utilisant votre exemple d'adresse en ajoutant un champ audit_comment à votre formulaire.

<%form_for @address do |f| %> 
    ... standard address fields 
    <%= f.label_for :audit_comment %> 
    <%= f.text_field :audit_comment %> 
<% end %> 
+0

Incroyable !!!! Parlez d'aller au-dessus et au-delà. Merci beaucoup, ça a fonctionné parfaitement – Jonathan

+0

De rien. J'ai réalisé à mi-chemin d'une réponse que j'avais déjà fait la plupart du travail. Cela semblait être une chose suffisamment utile pour que cela soit logique. – EmFi