Skip to content
This repository has been archived by the owner on Feb 2, 2021. It is now read-only.

jmpage/dirty_associations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Resources

License

Stars

Watchers

Forks