Ruby on Rails单表继承示例表单

时间:2013-06-11 16:22:24

标签: ruby-on-rails ruby-on-rails-3.1 single-table-inheritance

我是rails中的超级新手,我需要看一个关于如何实现单表iheritance的示例代码,我有一个名为Listing的模型作为超类,我有子类LawFirms和Paralegal,这些都扩展了上市模型,现在我需要能够创建一个新的列表,但是当我创建时我需要表单可以选择Law Firm或Paralegal,当选择Law Firm选项时,它应该显示一个表单来创建LawFirm对象与律师助理对象不同,因为律师事务所拥有律师和律师助理不会拥有辩护律师。

到目前为止,我的模型看起来像这样

类列表<的ActiveRecord :: Base的 端

类LawFirm<清单  has_many:拥护者 端

类律师助理<清单 端

如何创建控制器?形式?

1 个答案:

答案 0 :(得分:0)

我不确定继承是否是正确的解决方案。继承用于is-a关系。例如,日产是一辆汽车,因此日产将从汽车类继承。使用rails中的嵌套资源将LawFrim或Paralegal作为清单中的对象可能会更好。然后,您可以在控制器中添加一些检查,以确保它只有一个或另一个对象。