Rails重用现有的控制器

时间:2013-07-16 10:24:34

标签: ruby-on-rails ruby ruby-on-rails-3

我的网络应用中有PartsController,效果非常好。它发送正确的数据进行查看,以便视图可以呈现图表/统计数据等等,并且一切都是完整的工作顺序。

现在我的应用程序中还有另一项功能,可以将部件组合到产品中。现在我有一个ProductController我想要基本保留与零件控制器完全相同的行为,这意味着我想重用我的零件控制器中存在的视图,但只是发送不同的数据来查看。 PartsController会发送一个数据,ProductController会将其他数据发送到视图,但当然它们的类型相同。

最好的方法是什么?也许对于productcontroller来继承零件控制器?这是甚至可以在rails中覆盖控制器中的某些方法,但使用相同的视图?

1 个答案:

答案 0 :(得分:1)

听起来你不想在PartsControllerProductController之间共享控制器逻辑,只是视图。如果是这样,将模板放在公共目录中,并在控制器中,执行此操作以呈现:

 # imagine the templates are in app/views/products
 render 'products/action_name'

如果您还想共享控制器逻辑,有几个选项:

  1. 两者都继承自一个共同的超类
  2. 一个继承自另一个(并覆盖所选方法)
  3. 两个include共同的Module