Rails Model has_many with multiple foreign_keys

Posted by Kenzie on Stack Overflow See other posts from Stack Overflow or by Kenzie
Published on 2008-11-21T01:51:25Z Indexed on 2010/03/27 14:23 UTC
Read the original article Hit count: 188

Filed under:
|
|
|

Relatively new to rails and trying to model a very simple family "tree" with a single Person model that has a name, gender, father_id and mother_id (2 parents). Below is basically what I want to do, but obviously I can't repeat the :children in a has_many (the first gets overwritten).

class Person < ActiveRecord::Base
  belongs_to :father, :class_name => 'Person'
  belongs_to :mother, :class_name => 'Person'
  has_many :children, :class_name => 'Person', :foreign_key => 'mother_id'
  has_many :children, :class_name => 'Person', :foreign_key => 'father_id'
end

Is there a simple way to use has_many with 2 foreign keys, or maybe change the foreign key based on the object's gender? Or is there another/better way altogether?

Thanks!

© Stack Overflow or respective owner

Related posts about ruby

Related posts about ruby-on-rails