2012-07-03 19 views
13

Acabo de terminar de leer el libro Desarrollo web ágil con Rails, cuarta edición (http://pragprog.com/book/rails4/agile-web-development-with-rails), y necesito ayuda para entender cómo crear una relación padre-hijo entre los modelos. Hice algunos Google y hurgué por aquí en StackOverflow y aprendí en general sobre herencia de tabla única y herencia de tabla de clase.¿Cómo implemento class-table-inheritance en Rails?

Tengo un montón de metadatos sobre diferentes elementos en una colección de archivos. Muchos de los metadatos son los mismos para todos los objetos, por ejemplo, número de acceso, título, descripción, derechos de autor, etc. Además de los metadatos comunes, hay metadatos que solo se aplican a ciertos tipos de elementos, por ejemplo, las fotos deben conservarse. seguimiento de si el artículo está en color o en blanco y negro; las grabaciones de sonido necesitan realizar un seguimiento del formato (CD, DAT, cinta de cassette, etc.) y la duración; los materiales de texto necesitan mantener un registro del número de páginas; etc.

 Class hierarchy 

      Item 
       | 
    +-----------+------------+ 
    |   |   | 
Photo SoundRecording Text 

Como tendré muchos miles de registros, he descartado que la herencia de una sola tabla sea demasiado ineficaz. Entiendo la idea de la herencia de tablas de clase como se presenta aquí: http://martinfowler.com/eaaCatalog/classTableInheritance.html pero estoy confundido sobre cómo implementaría esto en un nuevo proyecto de Ruby on Rails. ¿Implemento la herencia de la tabla de clases como una asociación polimórfica (http://guides.rubyonrails.org/association_basics.html#polymorphic-associations) o estoy en la pista incorrecta?

Gracias.

Respuesta

Cuestiones relacionadas