ActiveModel::MissingAttributeError occurs after deploying and then goes away after a while

You probably have a query that doesn’t return all the columns (i.e. uses :select) and then cache_money; or some other ActiveRecord plugin uses an after_initialize callback, which executes whenever a new ActiveRecord object is created (i.e. when fetched from the database).

In that initialize callback, something tries to access or use an attribute that wasn’t included in the :select. You’d expect this to return nil for that attribute, but an ActiveRecord::MissingAttributeError is thrown instead.

You can rescue ActiveRecord::MissingAttributeError like the article suggests, or patch the plugin(s) to use has_attribute?(:attribute_name) before they try to access or modify the attribute.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)