1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- # frozen_string_literal: true
- # == Schema Information
- #
- # Table name: admin_action_logs
- #
- # id :bigint(8) not null, primary key
- # account_id :bigint(8)
- # action :string default(""), not null
- # target_type :string
- # target_id :bigint(8)
- # created_at :datetime not null
- # updated_at :datetime not null
- # human_identifier :string
- # route_param :string
- # permalink :string
- #
- class Admin::ActionLog < ApplicationRecord
- self.ignored_columns += %w(
- recorded_changes
- )
- belongs_to :account
- belongs_to :target, polymorphic: true, optional: true
- before_validation :set_human_identifier
- before_validation :set_route_param
- before_validation :set_permalink
- scope :latest, -> { order(id: :desc) }
- def action
- super.to_sym
- end
- private
- def set_human_identifier
- self.human_identifier = target.to_log_human_identifier if target.respond_to?(:to_log_human_identifier)
- end
- def set_route_param
- self.route_param = target.to_log_route_param if target.respond_to?(:to_log_route_param)
- end
- def set_permalink
- self.permalink = target.to_log_permalink if target.respond_to?(:to_log_permalink)
- end
- end
|