Skip to content

A plugin for rails that allows has_one, has_many and certain belongs_to associations to share instances of the "parent" model to the "child" model via the association.

License

Notifications You must be signed in to change notification settings

h-lame/parental_control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ParentalControl
===============

Using parental control your associations will share model instances with each other where appropriate.  For example, when using a parent to fetch a child, the child will return the same parent instance if you ask it for it's parent, rather than fetching it from the database.

This might increase performance.  It might not.  It might make it easier to do things where a child relies on a parent for validation, and you make changes to both parent and child before saving.

So far it works for has_many and has_one (not :through) associations.  It also works for belongs_to asociations where the reciprocal association on the parent is a has_one.

For polymorphic associations it works for the belongs_to ends, but not the has_one or has_many ends of the association.

Example
=======

Scenario:

class Man < ActiveRecord::Base
  has_one :face
end

class Face < ActiveRecord::Base
  belongs_to :man
end

m = Man.first
f = m.face
m.name == f.man.name # => true
m.name = 'Dave'

Without parental_control

m.name == f.man.name # => false : m and f.man are different instances of Man.first :(

With parental_control

m.name == f.man.name # => true : m and f.man are the same instances of Man.first :)

Copyright (c) 2008 Murray Steele, released under the MIT license

About

A plugin for rails that allows has_one, has_many and certain belongs_to associations to share instances of the "parent" model to the "child" model via the association.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages