Я впервые поигрался с Audited
гемом.Для начала я запустил новое пустое приложение Rails 5.2.Я создал модель Devise
Пользователь , которая была бы идеальным кандидатом для аудита действий.
Предположим, я использую следующий код:
class User < ApplicationRecord
# Assuming that you are using default Devise columns and has no custom column(s) in the model.
[...]
audited
end
Файл миграции:
class InstallAudited < ActiveRecord::Migration[5.2]
def self.up
create_table :audits, :force => true do |t|
t.column :auditable_id, :integer
t.column :auditable_type, :string
t.column :associated_id, :integer
t.column :associated_type, :string
t.column :user_id, :integer
t.column :user_type, :string
t.column :username, :string
t.column :action, :string
t.column :audited_changes, :text
t.column :version, :integer, :default => 0
t.column :comment, :string
t.column :remote_address, :string
t.column :request_uuid, :string
t.column :created_at, :datetime
end
add_index :audits, [:auditable_type, :auditable_id, :version], :name => 'auditable_index'
add_index :audits, [:associated_type, :associated_id], :name => 'associated_index'
add_index :audits, [:user_id, :user_type], :name => 'user_index'
add_index :audits, :request_uuid
add_index :audits, :created_at
end
def self.down
drop_table :audits
end
end
По умолчанию ожидается, что у него будет имя пользователя (которое является нулевым на момент сохранения записи), но я хочу указать адрес электронной почты в поле и сохранить его.Как бы я подошел к этому поведению?