2009-09-17 7 views
0

J'ai créé un ActiveRecord pour un client, et maintenant ils le voudraient ainsi quand il est détruit, il est réellement gardé autour pour une annulation manuelle.Comment rendre un Rails ActiveRecord dépendant d'un attribut?

Ce que je voudrais faire est de créer un attribut booléen appelé « actif », et la valeur par défaut 1. Lorsqu'un enregistrement est détruit, l'attribut est basculée à 0.

Je sais que je pouvais changer tout mon requêtes pour avoir une condition supplémentaire de active = 1, ou utiliser la portée, ou même utiliser la colonne type et l'héritage (ce que je fais pour le terminer dès que possible). Y a-t-il un moyen de dire à un ActiveRecord qu'un enregistrement dans la table est réellement un enregistrement UNIQUEMENT si un attribut est une certaine valeur (dans ce cas active = 1), et si c'est autre chose, l'ignorer complètement?

Merci, Andrew

Répondre

4

Voici ce que vous voulez:

http://ar-paranoid.rubyforge.org/

+0

Cela semble utile. J'en ai: dependent => destroy associations. Savez-vous comment acts_as_paranoid va gérer cela? –

+0

devrait les gérer très bien. dependent =>: destroy invoque des rappels. Passez en revue la source de ce plugin et écrivez quelques tests simples cependant. –

Questions connexes