我不确定我理解rails多态。 在Java中,您可以使用相同的Objecttype创建对象: http://www.fh-kl.de/~guenter.biehl/lehrgebiete/java2/j2-08-Dateien/abb.8.10.jpg
Person trainer = new Trainer()
Person sportler = new Trainer()
在Rails中http://guides.rubyonrails.org/association_basics.html#polymorphic-associations:
在这个例子中:图片可以来自员工或产品,听起来很奇怪,因为这不是真正相同的类型。
我是否理解真正的目的:在同一个容器中保存一个人或图像数组?
在我的铁轨项目中:我有几个人:运动员,训练师和客人。他们是人的儿子(继承)。 我想我符合继承理由。
还有另一个名为exercise的课程。
运动员和训练师可以创造练习。
所以我想使用多态。练习可以来自训练师或运动员。与rails页面的示例一样,图像可以来自员工或产品。
我是否符合最佳做法?
如何实现has_many:通过多态? 不可能使用具有多态性的habtm assoziation。 你必须定义一个额外的类,但究竟是怎么做的?
答案 0 :(得分:0)
我认为您需要单表继承(STI)模型,而不是多态关系。
请参阅此文http://www.alexreisner.com/code/single-table-inheritance-in-rails以及这些stackoverflow答案Rails - Single Table Inheritance or not for Applicant/Employee relationship Alternative to Rails Single Table Inheritance (STI)?