views:

445

answers:

1

I have a small rails app. I want to put audit trail in it. Basically when a new user is added. it will insert a row in AuditTrailUsers table with the new user_id created and logged in users' user_id.

I am thinking about using rails callback before_save for this. However, I am not sure if that will work.

Imagine I have model/Users.rb and 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

How can I implement insert_audit so that it takes in a user id (of logged in user) so that it can pass it to AuditTrailUser when calling AuditTrailUser.create(...).

If I pass in logged in user's user id...then will I have to explicitly call before_save every where...

I am new to rails.

+2  A: 
define self.answer
   http://github.com/collectiveidea/acts_as_audited
end
groovynoob