Rails의 사용자 작업 데이터베이스 정보 로깅
1677 단어 Rails
class AddAuditTrailsTable < ActiveRecord::Migration
def self.up
create_table :audit_trails do |t|
t.column :record_id, :integer
t.column :record_type, :string
t.column :event, :string
t.column :user_id, :integer
t.column :created_at, :datetime
end
end
def self.down
drop_table :audit_trails
end
end
app/models/auditswpeeper.rb리
class AuditSweeper < ActionController::Caching::Sweeper
observe Person
def after_destroy(record)
log(record, "DESTROY")
end
def after_update(record)
log(record, "UPDATE")
end
def after_create(record)
log(record, "CREATE")
end
def log(record, event, user = controller.session[:user])
AuditTrail.create(:record_id => record.id,
:record_type => record.type.name,
:event => event,
:user_id => user)
end
end
그리고 People Controller가 Person 대상을 조작할 때audit 를 사용한다고 알려야 합니다sweeper가 조작을 기록합니다
app/controllers/people_controller.rb
cache_sweeper :audit_sweeper
auditing 메커니즘은 Rails의 캐시 코드에 의존하기 때문에 config/environments/development를 확보합니다.rb에서 config.action_controller.perform_caching true 설정
from:http://www.sevenmike.com/page/9/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
새로운 UI의 Stripe Checkout을 Rails로 만들어 보았습니다.Stripe의 옛 디자인인 Stripe의 구현 기사는 많이 있습니다만, 지금 현재의 디자인에서의 도입 기사는 발견되지 않았기 때문에 투고합니다. Stripe의 체크아웃을 stripe의 문서라든지 stackoverfl...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.