Relativamente nuevo en rails e intentando modelar un "árbol" familiar muy simple con un único modelo Person que tiene un nombre, género, father_id y mother_id (2 padres). Debajo está básicamente lo que quiero hacer, pero obviamente no puedo repetir lo siguiente: niños en un has_many (el primero se sobrescribe).Rails Modelo has_many con multiple foreign_keys
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
¿Hay una manera simple de usar has_many con 2 llaves extranjeras, o tal vez cambiar la clave externa basada en el género del objeto? ¿O hay otra/mejor manera en conjunto?
Gracias!
Para Rails 3, encadenamiento de ámbito, ActiveRecord :: Relación y, finalmente, 'has_many': http://stackoverflow.com/questions/17476521/rails-has-many-custom-activerecord-association/17476639#17476639 – MrYoshiji
Estás buscando "claves compuestas": http: // stackoverflow.com/questions/17882105/is-it-possible-to-defined-composite-primary-key-for-table-using-active-record – xpepermint