Я только что закончил работу над книгой Agile Web Development с Rails, четвертое издание (http://pragprog.com/book/rails4/agile-web-development-with-rails), и вам нужна помощь в понимание того, как создать отношения между родителями и детьми между моделями. Я сделал некоторый Googling и ткнул сюда на StackOverflow и узнал в основном об одном наследовании таблицы и наследовании таблицы классов.
У меня есть куча метаданных о разных элементах в архивной коллекции. Значительная часть метаданных одинакова для всех объектов, например номер доступа, название, описание, авторское право и т.д. В дополнение к общим метаданным есть метаданные, которые применимы только к определенным типам предметов, например, фотографии должны содержать отслеживать, является ли элемент цветным или черно-белым; звукозаписи должны отслеживать формат (CD, DAT, кассетная лента и т.д.) и продолжительность; текстовые материалы должны отслеживать количество страниц; и др.
Class hierarchy
Item
|
+-----------+------------+
| | |
Photo SoundRecording Text
Так как у меня будет много тысяч записей, я исключил бы однонамерное наследование как слишком неэффективное. Я понимаю идею наследования таблицы классов, представленную здесь: http://martinfowler.com/eaaCatalog/classTableInheritance.html, но я смущен тем, как я бы это сделал в новом Ruby on Rails проект. Я реализую наследование таблицы классов как полиморфную ассоциацию (http://guides.rubyonrails.org/association_basics.html#polymorphic-associations), или я ошибаюсь?
Спасибо.