什么是处理大量控制器的“Rails方式”?

时间:2011-10-01 12:01:53

标签: ruby-on-rails

在我的Rails应用程序中,控制器开始堆积(> 30)。

它是Java,我很久以前就开始创建子包,但我在这里有点犹豫。 我已经有了UserAdmin命名空间,但我不确定创建更精细的命名空间结构是否合适,特别是考虑到可维护性。

在这种情况下,“Rails方式”是什么?

  • 只是有一个或多或少的扁平控制器结构?
  • 或者慷慨地将控制器捆绑到命名空间/模块中会更好吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

不知道是否有理想的方式,但具体到我处理的项目,我已将其分组在文件夹结构下。最初,再次针对我的项目,我们不得不处理几个名为coach和manager的控制器。但随着时间的推移,它们的大小开始膨胀,我们不得不创建更多的控制器,可以归入一个广泛的类别。这导致了平稳的增长。

更多时间过去了,我们开始将其分组到文件夹中,例如,在一个名为coach的文件夹中,教练的所有相关功能都会出现,控制器名称开始看起来像class Coach::SchedulesController < ApplicationController

这种分组方式也有助于编写功能测试。你不希望你的功能测试也有疯狂的线条。

但Rails总是建议要有一个瘦小的控制器和一个胖子模型。有时,这可能不那么容易,是的,这些是你可以克服困难的一些方法。

答案 1 :(得分:2)

在Rails中,命名空间控制器(甚至是ugh,models)是不受欢迎的。是的,有时它是必要的,或者只是最简单的,但我会说它永远不可取。

只要您的控制器是瘦的并且每个控制器代表1个型号,我就不介意平板文件夹中的100个控制器。当你拥有比模型更多的控制器时,我会开始担心。

当然这都是恕我直言。