[Ror-es] Auto-relación simétrica
Jorge Alvarez
Tue Feb 14 17:17:42 GMT 2006
Hola Sergio:
Eso que tu quieres hacer en Rails se llama Single table inheritance.
El ejemplo que aparece en el libro "Web development with rails" trae un
ejemplo que se aproxima mucho a lo que tu quieres:
Definición de la tabla personas:
create table people (
id int not null auto_increment,
type varchar(20) not null,
/* common attributes */
name varchar(100) not null,
email varchar(100) not null,
/* attributes for type=Customer */
balance decimal(10,2),
/* attributes for type=Employee */
reports_to int,
dept int,
/* attributes for type=Manager */
/* -- none -- */
constraint fk_reports_to foreign key (reports_to) references people(id),
primary key (id)
);
Definición de las clases de persona
class Person < ActiveRecord::Base
end
class Customer < Person
end
class Employee < Person
end
class Manager < Employee
end
Ahora gracias al atributo reports_to puedes hacer que un Manager tiene
varios Employee....... etc...
Creo que con esto servirá para lo que tu quieres.
Saludos,
Jorge Alvarez
http://www.riojasoft.com