Cancellazione logica

Ciao a tutti,

vorrei implementare una sorta di cancellazione logica per una model (es
Task); la mia idea teorica era quella di fare overwrite del metodo
destroy in modo che setti a 1 l’attributo deleted e poi di conseguenza
modificare i metodi tipo find in modo che cerchino solo tra i record con
deleted = 0.
Premesso che devo ancora partire, volevo solo sapere se cmq la strada è
giusta e se ci sono suggerimenti oppure esempi da poter valutare.

se la model Task è cosi

class Task < ActiveRecord::Base
has_many :notes
belongs_to :priority
end

devo definire dentro un metodo self.destroy che fa circa come scritto
sotto? ed allo stesso modo per tutti i metodi di ricerca che utilizzo su
Task ?

class Task < ActiveRecord::Base
has_many :notes
belongs_to :priority

def self.destroy
      deleted = 1
end

end

Grazie a tutti

Luigi

On Tue, Aug 5, 2008 at 5:36 PM, Luigi M. [email protected]
wrote:

Ciao a tutti,

vorrei implementare una sorta di cancellazione logica per una model (es
Task); la mia idea teorica era quella di fare overwrite del metodo
destroy in modo che setti a 1 l’attributo deleted e poi di conseguenza
modificare i metodi tipo find in modo che cerchino solo tra i record con
deleted = 0.
[…]

hai un motivo particolare per voler modificare destroy piuttosto che
definire, che so, logical_destroy?

se la risposta è sì, prova magari a dare un’occhiata ad
acts_as_paranoid, un plugin che ti salva tutti i record che vengono
cancellati.

No, in effetti potrei definire anche un altro metodo, in questo caso poi
non volevo adottare la cancellazione logica ovunque, ma solo per tenere
i record di una tabella,
cmq guardo anche il plugin che mi hai detto .

Grazie.

Luigi

Pietro G. ha scritto: