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:

http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects

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:

http://github.com/daphonz/dirty_associations

-Casey

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs