As I mentioned in my previous post, we have an Item object that is both versioned and remains in the database after it's deleted. Fortunately, there's two ruby plugins that do just that:
acts_as_versioned and
acts_as_paranoid. Unfortunately, these plugins
don't work together perfectly. Even more unfortunately, this fix doesn't work as it should because acts_as_versioned tries to version the
deleted_at
column as well, so
here's the module we're using to combine them:
module ActiveRecord
module Acts
module Versioned
module ClassMethods
def acts_as_paranoid_versioned
acts_as_paranoid
acts_as_versioned
self.non_versioned_columns << 'deleted_at'
# protect the versioned model
self.versioned_class.class_eval do
def self.delete_all(conditions = nil); return; end
end
end
end
end
end
end
No comments:
Post a Comment