docbrown/app/models/backup_data.rb

16 lines
525 B
Ruby

class BackupData < ApplicationRecord
belongs_to :instance, polymorphic: true
belongs_to :instance_user, class_name: "User"
validates :instance_id, :instance_type, :json_data, presence: true
def self.backup!(instance)
BackupData.create!(instance_type: instance.class.name, instance_id: instance.id,
instance_user_id: instance.user_id, json_data: instance.attributes)
end
def recover!
instance = instance_type.constantize.create!(json_data.to_h)
destroy!
instance
end
end