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 05.08.2008 17:33
on 05.08.2008 17:46
On Tue, Aug 5, 2008 at 5:36 PM, Luigi Maroncelli <luigi.m@condor.it> 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.
on 06.08.2008 09:16
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 Giorgianni ha scritto: