Acabo de empezar a hacer alguna cosilla en rails y me he encontrado una
situacion que no se como resolverla, a ver si alguien me echa una mano.
El problema esta en que necesito implementar unas clases que hereden de
una clase padre, pero cada subclase tendria que guardarse en una tabla
diferente. Me explico con un ejemplo:
Tengo la clase Vehiculo de la que heredan coche, moto y camion.
He visto que se puede implementar creando la tabla vehiculos que lo
guarde todo y un atributo tipo que los diferencie. Esta solucion no me
vale ya que cada una de estas clases es muy diferente de las demas y me
llenaria la tabla de valores nulos.
Lo que quiero es una tabla para cada clase con los atributos unicos y la
tabla vehiculos con los comunes.
mmm yo me he quedado trabado en eso de herencia en rails… porque la
verdad
me dicen todos que solo debo crear la tabla del padre y un campo
discriminador… y los hijos? solo son modelos más no tablas…
Pues… pero como dice el piso de arriba, que habrán muchos campos
nulos… y
seria mejor que cada hijo tenga su tabla de igual que el padre tb su
tabla…
La idea es que la tabla vehiculos tenga los campos comunes y las otras
sus
campos especificos. La relacion se hace por un identificador. Seria algo
como:
El problema esta en que no se como montarlo en rails.
He estado mirando un poco y hay varios tipos de herencia:
Single table inheritance, que es meterlo todo en Vehiculos y
diferenciarlo
con un atributo type (esto comporta que todos los atributos de los otros
tipos seran nulos)
Class table inheritance, el sistema que comento. Segun parece, rails
no lo
soporta de momento.
Se que hay algun plugin, patch para el ActiveRecord… pero no se haste
que
punto funcionan. A ver si alguien sabe alguna forma de implementarlo.