Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
acts_as_audited is an ActiveRecord extension that logs all changes to your models in an audits table.
Ruby

This branch is 31 commits ahead, 324 commits behind collectiveidea:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
doc
lib
test
.gitignore
CHANGELOG
LICENSE
README
Rakefile
VERSION
acts_as_audited.gemspec
acts_as_audited_rails3.gemspec

README

= acts_as_audited

acts_as_audited is an ActiveRecord extension that logs all changes to your models in an audits table.

The purpose of this fork is to add comments to audits.

== Installation

    script/plugin install git://github.com/EmFi/acts_as_audited.git

* Generate the migration

  * If installing without a previous version of acts_as_audited or you do not mind overwriting your audits table:

      script/generate audited_migration add_audits_table

  * If upgrading from a version of acts_as_audited that does not contain comment functionality:

      script/generate audited_migration_update update_audits_table

  * After running one of the generators:

      rake db:migrate

== Usage

Declare <tt>acts_as_audited</tt> on your models:

    class User < ActiveRecord::Base
      acts_as_audited :except => [:password, :mistress]
    end
    
Within a web request, will automatically record the user that made the change if your controller has a <tt>current_user</tt> method. Comments can be added to an audit by setting model.audit_comments 
before create/update/destroy. If the :comment_required option is given to acts_as_audited, 
the save/update/destroy action will fail with add an error on model.audit_comment and triggering a 
transaction rollback if model.audit_comment is nil.

To record a user in the audits outside of a web request, you can use <tt>as_user</tt>:

    Audit.as_user(user) do
      # Perform changes on audited models
    end

== Caveats

If your model declares +attr_accessible+ after +acts_as_audited+, you need to set +:protect+ to false. acts_as_audited uses +attr_protected+ internally to prevent malicious users from unassociating your audits, and Rails does not allow both +attr_protected+ and +attr_accessible+. It will default to false if +attr_accessible+ is called before +acts_as_audited+, but needs to be explicitly set if it is called after.

  class User < ActiveRecord::Base
    acts_as_audited :protect => false
    attr_accessible :name
  end

== Compatability

acts_as_audited works with Rails 2.1 or later.

== Getting Help

Join the mailing list for getting help or offering suggestions:
  http://groups.google.com/group/acts_as_audited

== Contributing

Contributions are always welcome. Checkout the latest code on GitHub:
  http://github.com/collectiveidea/acts_as_audited

Please include tests with your patches. There are a few gems required to run the tests:
  $ gem install multi_rails
  $ gem install thoughtbot-shoulda jnunemaker-matchy --source http://gems.github.com

Make sure the tests pass against all versions of Rails since 2.1:

  $ rake test:multi_rails:all

Please report bugs or feature suggestions on GitHub:
  http://github.com/collectiveidea/acts_as_audited/issues
Something went wrong with that request. Please try again.