Active Record: Defining Table Relationships

Hi,

I’ve just started with Rails and I’m struggling with how to define a
particular table relationship in Active Record.

There are two tables, Family and Person.

Family:
id
father_id
mother_id

Person:
id
name

Where the father_id and mother_id are both one-to-one foreign key
references back to the Person table.

Any advice on how to define this relationship would be appreciated.

Thanks.

  • Adam

On Oct 16, 2007, at 7:37 PM, demonGeek wrote:

mother_id
Thanks.

  • Adam

Assuming that you also have
Person:
family_id

I’d say that you have:

class Person
belongs_to :family
end

class Family
belongs_to :mother, :class_name => ‘Person’, :foreign_key =>
mother_id
belongs_to :father, :class_name => ‘Person’, :foreign_key =>
father_id
has_many :people
end

I think that the :foreign_key option will become the default in Rails
2.0, but it is required in 1.2 (the default being ‘person_id’ from
the class_name)

-Rob

Rob B. http://agileconsultingllc.com
[email protected]

Hi Adam

Take a look at activescaffold…

Thanks Rob, I did indeed have the person-belongs-to-family
relationship too, so your answer solves everything for me.

I appreciate the help.

  • Adam

On Oct 16, 6:56 pm, Rob B. [email protected]