Search code examples
ruby-on-rails-3rails-3-upgradeacts-as-audited

When using Audit in Rails 3, I get "uninitialized constant User::Audit"


I was using acts_as_audited in my Rails 2 app and am in the process of updating it to Rails 3. I have updated a couple of models to call audited instead of acts_as_audited and those seem to work successfully. However, I am updating the User model of my app now and when I try to create a User (either from the console or from the app), I get the following error:

uninitialized constant User::Audit

The trace down the where it seems relevant is:

activerecord (3.2.8) lib/active_record/inheritance.rb:111:in `compute_type'
activerecord (3.2.8) lib/active_record/reflection.rb:172:in `klass'
activerecord (3.2.8) lib/active_record/associations/collection_association.rb:148:in `transaction'
activerecord (3.2.8) lib/active_record/associations/collection_association.rb:431:in `create_record'
activerecord (3.2.8) lib/active_record/associations/collection_association.rb:119:in `create'
activerecord (3.2.8) lib/active_record/associations/collection_proxy.rb:46:in `create'
audited (3.0.0) lib/audited/auditor.rb:216:in `block in write_audit'
activesupport (3.2.8) lib/active_support/callbacks.rb:403:in `_run__3460157709255055264__audit__3867610640799995319__callbacks'
activesupport (3.2.8) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.8) lib/active_support/callbacks.rb:385:in `_run_audit_callbacks'
activesupport (3.2.8) lib/active_support/callbacks.rb:81:in `run_callbacks'
audited (3.0.0) lib/audited/auditor.rb:216:in `write_audit'
audited (3.0.0) lib/audited/auditor.rb:198:in `audit_create'

The line that creates the issue in my controller simply states:

if @editing_user.save

I've looked through the support list of audited's github account and can't find anything that fits my issue. I thought I'd ask here to see if someone has had a similar issue. I've also searched here and google to find an answer to this specific question but can't find anything relevant.

Any ideas?


Solution

  • It turns out that I had has_many :audits within the User model but not any other model. After I removed that has_many call, everything worked fine.