Detect change to an associated attribute

Consider these two models:

class Article < ActiveRecord::Base   has_many :posts end

class Post < ActiveRecord::Base   belongs_to :article end

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: