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
-~----------~----~----~----~------~----~------~--~---

Reply via email to