mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
ccea98389a
You can now add an :inverse_of option to has_one, has_many and belongs_to associations. This is best described with an example: class Man < ActiveRecord::Base has_one :face, :inverse_of => :man end class Face < ActiveRecord::Base belongs_to :man, :inverse_of => :face end m = Man.first f = m.face Without :inverse_of m and f.man would be different instances of the same object (f.man being pulled from the database again). With these new :inverse_of options m and f.man are the same in memory instance. Currently :inverse_of supports has_one and has_many (but not the :through variants) associations. It also supplies inverse support for belongs_to associations where the inverse is a has_one and it's not a polymorphic. Signed-off-by: Murray Steele <muz@h-lame.com> Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
7 lines
346 B
Ruby
7 lines
346 B
Ruby
class Man < ActiveRecord::Base
|
|
has_one :face, :inverse_of => :man
|
|
has_many :interests, :inverse_of => :man
|
|
# These are "broken" inverse_of associations for the purposes of testing
|
|
has_one :dirty_face, :class_name => 'Face', :inverse_of => :dirty_man
|
|
has_many :secret_interests, :class_name => 'Interest', :inverse_of => :secret_man
|
|
end
|