I would like to override the destroy method of my AR objects with something like this: module Restorable alias_method :really_destroy, :destroy def destroy self.destroyed = Date.today self.save(false) self end def restore self.destroyed = nil self.save(false) self end end Problem is that Restorable doesn't have a destroy method to alias_method. Is there a way to get this sort of functionality? I would like to avoid adding a new method (like delete) to save confusion and so I don't have to go back and change my controllers. Thanks, --Dean
on 2007-04-09 11:01
on 2007-04-09 11:26
Hi, > Problem is that Restorable doesn't have a destroy method to > alias_method. Is there a way to get this sort of functionality? everytime a module is included as a mix-in, the method "included" of the module is called, and the class including the module is passed as a parameter, so you can practice any kind of ruby dynamic black magic over the original class, in your case an AR object. I'm pasting a small template you can use for yor mix-in def self.included(parent_class) class << parent_class #everything you do here will be evaluated on the parent class content, so any method aliasing and/or overwriting should be done here end end regards, javier ramirez -- -------- Estamos de estreno... si necesitas llevar el control de tus gastos visita http://www.gastosgem.com !!Es gratis!!
on 2007-04-09 22:09
You might want to look at acts_as_paranoid: http://ar-paranoid.rubyforge.org/ though I guess that doesn't give you a restore method.... b
on 2007-04-10 00:36
On Apr 9, 11:07 am, Ben M. <firstname.lastname@example.org> wrote: > You might want to look at acts_as_paranoid: > > http://ar-paranoid.rubyforge.org/ > > though I guess that doesn't give you a restore method.... > > b Thanks for the reply. I'll extend a_a_paranoid to include a restore method. Thanks also to javier. --Dean