Detect change to an associated attribute

Consider these two models:

class Article < ActiveRecord::Base
has_many :posts

class Post < ActiveRecord::Base
belongs_to :article

The ActiveRecord::Dirty module allows one to detect changes in a
model’s attribute. In the above example, how does one detect if the
number of posts an article has changed, or the posts themselves have
changed from the point of view of an Article object?

In other words, is there something like “article.posts_changed?”?

Here’s an example for you:

I took a look at the referenced article but I don’t see where it
addresses a has_many association. What am I missing? Thanks.

Hi Jerry,

I had this same problem, but dirty attributes don’t work for
associations. I ended making my own plugin for it, called Dirty
Associations, and it might be exactly what you’re looking for. You
can get it here: