9

私は小さなレールアプリを持っています。監査証跡を入れたい。基本的に、新しいユーザーが追加されたとき。AuditTrailUsers新しい user_id が作成され、ユーザーの user_id にログインしたテーブルに行が挿入されます。

これには Rails コールバックを使用することを考えていますbefore_save。ただし、それが機能するかどうかはわかりません。

model/Users.rb私が持っていると想像してください model/AuditTrailUser.rb

class User < ActiveRecord::Base
    validates_presence_of :userid, :password
        before_save :insert_audit

  def self.authenticate(userid, password)
        user = self.find_by_userid_and_password(userid, password)       
    user
  end

  ##implement insert_audit

end

insert_auditを呼び出すときにAuditTrailUserに渡すことができるように、(ログインしたユーザーの)ユーザーIDを取得するように実装するにはどうすればよいですかAuditTrailUser.create(...)

ログインしているユーザーのユーザーIDを渡すとbefore_save、どこでも明示的に呼び出す必要があります...

私はレールが初めてです。

4

1 に答える 1

13

Rails モデルへのすべての変更をログに記録するには、 Audited gem を使用します。

于 2010-03-17T19:54:25.160 に答える