has_one does indeed mean has a maximum of one. The belongs_to side means has exactly one.
I don't know (because I never tried it) wjay happens if you put "belongs_to on both sides - i.e. make something exactly 1:1. Obviously not relevant in this case, but I could see situations where for performance reasons you may want that kind of partition - or when wrapping an external database. C On Apr 30, 1:08 pm, Rob Biedenharn <[email protected]> wrote: > On Apr 30, 2009, at 1:29 PM, serenobs wrote: > > > > > thanks for replies. > > it gives me some thought about making active record association. > > > then what if the man is a single? > > husband may not have current_marriage. > > i was thinking that has_one means it should have one object. > > But as you know not every man will marry. > > > please more advice for this novice. > > Then, man.current_marriage will be nil as will man.wife > > has_one really defines a 0/1 and has_many a 0/n relation. > > -Rob > > > > > > > On May 1, 2:17 am, Rob Biedenharn <[email protected]> wrote: > >> On Apr 30, 2009, at 12:56 PM, Commander Johnson wrote: > > >>> Did you consider > > >>> has_one :wife > > >>> And in Wife.rb > > >>> belongs_to :man > > >> Or: > >> class Wife > >> has_many :marriages > >> has_one :current_marriage, :class_name => 'Marriage', :conditions > >> => { :current => true } > >> has_one :husband, :through => :current_marriage > >> end > > >> class Marriage > >> belongs_to :wife > >> belongs_to :husband > >> end > > >> class Husband > >> has_many :marriages > >> has_one :current_marriage, :class_name => 'Marriage', :conditions > >> => { :current => true } > >> has_one :wife, :through => :current_marriage > >> end > > >> -Rob > > >> Rob Biedenharn http://agileconsultingllc.com > >> [email protected] > > >>> On Thu, Apr 30, 2009 at 6:49 PM, serenobs <[email protected]> > >>> wrote: > > >>> (my post was deleted i don't know why) > >>> Hi. I have a question. > >>> for example, when model records about man, suppose man can marry > >>> with > >>> 1 woman. > >>> then i think code will be like this > >>> class Man < ActiveRecord::Base > >>> has_many: wife > >>> end > > >>> Because one man can marry with up to 1 woman( 0 or 1 ) > >>> it can't be 1:1 relationship, didn't it? > >>> but at the same time more than 1 wife is not allowed. > >>> then how can i model this relationship into rails code? > >>> has_many :limit option is fit for this relation? > > >>> Thanks. > >>> and i wish it is not deleted again. If it should be deleted please > >>> let > >>> me know why it should be.- Hide quoted text - > > >> - Show quoted text -- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

