我刚刚完成了通过Rails第四版(
http://pragprog.com/book/rails4/agile-web-development-with-rails)的敏捷Web开发书,并且需要一些帮助来了解如何在模型之间创建父子关系.我在StackOverflow上做了一些Googling,并在这里戳了一遍,并且一般学习了单表继承和类表继承.
我有一堆关于档案收藏中不同项目的元数据.所有对象的大部分元数据是相同的,例如,登录号,标题,描述,版权等.除了常见的元数据之外,还有元数据仅适用于某些类型的项目,例如照片需要保留跟踪项目是彩色还是黑白;录音需要跟踪格式(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)还是我错误的轨道?
谢谢.
解决方法
是.
它归结为这(在Rails 3)
它归结为这(在Rails 3)
class Business < ActiveRecord::Base belongs_to :biz,:polymorphic => true end class Restaurant < ActiveRecord::Base acts_as_biz end
这是一个很好的教程,如何做到这一点.
http://techspry.com/ruby_and_rails/multiple-table-inheritance-in-rails-3/