在Ruby on Rails中,子类是否继承父类的关联?

时间:2015-09-06 20:05:35

标签: ruby-on-rails ruby

我有一个名为$(".drop-sub > li ").click(function() { $('li').not($(this).parentsUntil('#main-menu')).not($(this)).hide(400); }) $('#showall').click(function() { $('li,ul').show(400) })的抽象类和另一个名为<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type='button' id='showall' value='Show All'> <ul id="main-menu"> <li> <span class="main-menu-span">Menu Item 1</span> <ul id="drop"> <li>Sub Menu Item A</li> <li> <span class="drop-span">Sub Menu Item B</span> <ul class="drop-sub"> <li>Drop Sub Menu Item B1</li> <li>Drop Sub Menu Item B2</li> </ul> </li> <li>Sub Menu Item C</li> <li> <span class="drop-span">Sub Menu Item D</span> <ul class="drop-sub"> <li>Drop Sub Menu Item D1</li> <li>Drop Sub Menu Item D2</li> </ul> </li> <li> <span class="drop-span">Sub Menu Item E</span> <ul class="drop-sub"> <li>Drop Sub Menu Item E1</li> <li>Drop Sub Menu Item E2</li> </ul> </li> <li>Sub Menu Item F</li> <li> <span class="drop-span">Sub Menu Item G</span> <ul class="drop-sub"> <li>Drop Sub Menu Item G1</li> <li>Drop Sub Menu Item G2</li> </ul> </li> </ul> </li> </ul>的类。在Work模型中,我将其与FanficFanfic以及其他关联一起使用。我决定在添加更多类时更容易,它们将成为belongs_to :user的子类,而不是将所有类型的工作作为完全独立的类。

现在我想知道我是否可以在has_many :characters模型中编写所有作品中的关联,所有子类也保留所有这些关联。

对不起,如果它有点令人困惑。如果您需要澄清或需要查看我的代码,或者您是否需要任何其他信息,请告诉我。

1 个答案:

答案 0 :(得分:3)

您不仅应该在Work(超级)类中定义关联(并且它们可以在子类中使用),还应该对works的所有子类使用Work表。

Single Table Inheritance的典型案例。

要启用它,您只需将type列添加到works表(为其添加迁移)。

例如,当您查询Tales时,Rails会创建以下SQL查询:

SELECT * FROM WORKS WHERE type='Tale';

在Rails文档中有关于这些概念的很好的(和consice)文章:http://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html