jmpage / dirty_associations

A Ruby gem which provides a concern for monitoring has_many and has_many_and_belongs_to associations.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unmaintained

This gem is unmaintained.

DirtyAssociations

Monitors changes to has_many and has_and_belongs_to_many associations using ActiveModel::Dirty.

Usage

Include DirtyAssociations concern in your model.

include DirtyAssociations

Call monitor_association_changes method after has_many.

has_many :foos
monitor_association_changes :foos

Check one of the following methods to see if the relation has changed:

  • changes

  • changed

  • previous_changes

  • [singularized_association_name]_ids_changed?

  • [singularized_association_name]_ids_previously_changed?

    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
    

About

A Ruby gem which provides a concern for monitoring has_many and has_many_and_belongs_to associations.

License:MIT License


Languages

Language:Ruby 81.6%Language:HTML 14.5%Language:JavaScript 2.0%Language:CSS 1.9%