Module: MoRecord::Logged::ClassMethods

Defined in:
lib/mo_record/logged.rb

Instance Method Summary collapse

Instance Method Details

#logged_moObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/mo_record/logged.rb', line 7

def logged_mo
  has_many :logged_mos, as: :target
  before_update :update_logged_mo
  before_destroy :destroy_logged_mo

  private

  ["update","destroy"].each do |action|
    method_name = action + "_logged_mo"
    define_method method_name do
      LoggedMo.create(target_id: self.id, target_type: self.class.name, log_content: self.to_json, action: action, version: self.logged_mos.size)
    end
  end
end