You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.2 KiB
50 lines
1.2 KiB
# 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 |
|
|
|
default_scope -> { order('id desc') } |
|
|
|
before_validation :set_human_identifier |
|
before_validation :set_route_param |
|
before_validation :set_permalink |
|
|
|
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
|
|
|