Sha256: c0c42eea7cec85fd87e6d70f59581901d2bd8e60811476e1f0dc7d44fbb7a36c

Contents?: true

Size: 871 Bytes

Versions: 1

Compression:

Stored size: 871 Bytes

Contents

= DirtyAssociations

Monitors changes to <tt>has_many</tt> associations using ActiveModel::Dirty.

== Usage

Include <tt>DirtyAssociations</tt> concern in your model.

  include DirtyAssocations

Call <tt>monitor_association_changes</tt> method after <tt>has_many</tt>.

  has_many :foos
  monitor_association_changes :foos

Check <tt>changes</tt>, <tt>changed</tt>, <tt>previous_changes</tt>, <tt>[singularized_association_name]_ids_changed?</tt> or <tt>[singularized_association_name]_ids_previously_changed?</tt>.

  bar.foos = [ Foo.find(42) ] # or you can use the foo_ids setter
  bar.changes # { "foo_ids" => [[5], [42]] }
  bar.changed # [ "foo_ids" ]
  bar.foo_ids_changed? # true
  bar.foo_ids_previously_changed? # false
  
  bar.save
  bar.previous_changes # { "foo_ids" => [[5], [42]] }
  bar.foo_ids_changed? # false
  bar.foo_ids_previously_changed? # true

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dirty_associations-0.1.0 README.rdoc