在我的Rails应用程序中,控制器开始堆积(> 30)。
它是Java,我很久以前就开始创建子包,但我在这里有点犹豫。
我已经有了User
和Admin
命名空间,但我不确定创建更精细的命名空间结构是否合适,特别是考虑到可维护性。
在这种情况下,“Rails方式”是什么?
提前致谢。
答案 0 :(得分:2)
不知道是否有理想的方式,但具体到我处理的项目,我已将其分组在文件夹结构下。最初,再次针对我的项目,我们不得不处理几个名为coach和manager的控制器。但随着时间的推移,它们的大小开始膨胀,我们不得不创建更多的控制器,可以归入一个广泛的类别。这导致了平稳的增长。
更多时间过去了,我们开始将其分组到文件夹中,例如,在一个名为coach的文件夹中,教练的所有相关功能都会出现,控制器名称开始看起来像class Coach::SchedulesController < ApplicationController
。
这种分组方式也有助于编写功能测试。你不希望你的功能测试也有疯狂的线条。
但Rails总是建议要有一个瘦小的控制器和一个胖子模型。有时,这可能不那么容易,是的,这些是你可以克服困难的一些方法。
答案 1 :(得分:2)
在Rails中,命名空间控制器(甚至是ugh,models)是不受欢迎的。是的,有时它是必要的,或者只是最简单的,但我会说它永远不可取。
只要您的控制器是瘦的并且每个控制器代表1个型号,我就不介意平板文件夹中的100个控制器。当你拥有比模型更多的控制器时,我会开始担心。
当然这都是恕我直言。