Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Audited (formerly acts_as_audited) is an ORM extension that logs all changes to your Rails models.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
autotest
lib
spec
test
.gitignore
.yardopts
CHANGELOG
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
acts_as_audited.gemspec

README.rdoc

acts_as_audited

acts_as_audited is an ActiveRecord extension that logs all changes to your models in an audits table, with optional revision comments. acts_as_audited has been updated to work with Rails 3, to use it with older version of Rails, please see the rails2 branch.

Installation

In Gemfile:

gem "acts_as_audited", "2.0.0.rc1"

In your application root, run:

$ bundle install

Generate the migration:

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

    $ rails g acts_as_audited:install
  • If upgrading from a previous version of acts_as_audited you might need some alterations to the audits table:

    $ rails g acts_as_audited:upgrade
  • After running one of the generators:

    $ rake db:migrate

Upgrading

Upgrading to Rails 3, or even between point releases of acts_as_audited, might require alterations to the audits table. After every upgrade please run the following generator:

$ rails g acts_as_audited:upgrade

The upgrade generator will only generate migrations that are missing, or no migrations at all if you are up to date.

Usage

Declare acts_as_audited 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 current_user 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 as_user:

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 3.0.0 or later. For older versions of Rails, please see the rails2 branch.

Getting Help

Review the documentation at rdoc.info/github/collectiveidea/acts_as_audited

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

Contributing

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

Please include tests with your patches. There are a few gems required to run the tests:

$ bundle install

Make sure the tests pass against the version of Rails specified in the Gemfile

$ rake spec test

Please report bugs or feature suggestions on GitHub - github.com/collectiveidea/acts_as_audited/issues

Something went wrong with that request. Please try again.