组织一堆所有处理相同模型的控制器

时间:2010-08-03 00:28:00

标签: ruby-on-rails ruby organization

我有一堆不同的控制器都处理相同的基本模型。例如......

  • FoobarController
  • FoobarShareController
  • FoobarTakeController
  • FoobarToolsController
  • FoobarVerifyController

他们都对foobar模型做了各种各样的事情,我想要一种更好的方式来组织它们以及处理网站其他部分的其他事情,就像所有没有专门处理Foobar但只是一般的东西站点用法,如UserController,DashboardController,MainController。

我的想法是将所有内容放入命名空间,以便我拥有Foobar模块和Site模块。问题就是说Foobar:FoobarController,我的路径是foobar_foobar_path,类似的网址看起来有些奇怪。

这似乎不太理想,所以我想知道做这种组织的最佳方法是什么,而不是只将一切都放在一个目录中,因此只有一个命名空间。

2 个答案:

答案 0 :(得分:2)

我认为最简单的解决方案就是在控制器下创建一个Foobar目录,并将所有foobar内容放入其中。你可能需要重做一些routing / ajax / etc,但这是完全可行的,甚至是推荐的。

答案 1 :(得分:0)

如果不了解与各种与Foobar相关的控制器的详细信息,就很难就如何更好地组织它们提供建议。但是,您可能想问自己:

  • 为什么你首先有多个控制器?
  • 这些控制器不能以某种方式组合是否有充分的理由?
  • 共享基本控制器/模块可以简化这种情况吗?

一般来说,最好采用DRY方法。

  

重复的逻辑应合并到一个位置。