Ruby on rails 在Rails(和其他MVC框架)中使用非常大的控制器是一种不好的做法吗?

Ruby on rails 在Rails(和其他MVC框架)中使用非常大的控制器是一种不好的做法吗?,ruby-on-rails,controller,refactoring,Ruby On Rails,Controller,Refactoring,我是一名学生,一直在利用自己的时间学习rails。到目前为止,我能够开发只执行标准数据库操作的简单应用程序。目前,我正在尝试增加我的知识,并了解如何使应用程序真正“做事情”,而不仅仅是简单的数据库外观 我决定看看一些开源rails应用程序,看看专业人士是如何做到这一点的。在这个网站上推荐的一个是。我简单地浏览了一下源代码,并对一些控制器有多大感到震惊。例如,该系统有1400多条线路。这正常吗?这段代码应该被重构并放在其他地方吗?如果是,它应该放在哪里?或者,像这样拥有非常大的控制器是正常的吗?你

我是一名学生,一直在利用自己的时间学习rails。到目前为止,我能够开发只执行标准数据库操作的简单应用程序。目前,我正在尝试增加我的知识,并了解如何使应用程序真正“做事情”,而不仅仅是简单的数据库外观


我决定看看一些开源rails应用程序,看看专业人士是如何做到这一点的。在这个网站上推荐的一个是。我简单地浏览了一下源代码,并对一些控制器有多大感到震惊。例如,该系统有1400多条线路。这正常吗?这段代码应该被重构并放在其他地方吗?如果是,它应该放在哪里?或者,像这样拥有非常大的控制器是正常的吗?

你会遇到不同的观点和不同的看法,这是一个很流行的观点,也是RubyonRails社区中许多人订阅的观点。在某种程度上,当对象提供某些属性和特征是有意义的时候,模型中应该有很多代码

从测试开始(例如,执行TDD)有助于了解什么属于控制器,什么属于模型,因为它在创建测试时提出了一个正确的问题,即谁/什么应该以哪种方式行为


@dhh在

中发表了一篇关于这一点的好文章。一般来说,拥有这么大的控制器是不好的做法

只要可能,通常应将逻辑移到模型中。关于这方面的一篇好文章:


有一个名为“rails最佳实践”的优秀gem,我发现它对改进我的代码风格非常有帮助,((相关页面),

小心使用最佳实践gem,它所暗示的许多事情应该是合理的,而不是盲目地遵守,你应该以某种方式做事情,因为你同意它们,不仅仅是因为这是一个最佳实践。使用最佳实践是好的,但不要急于遵守每一件事而不理解背后的原因,当你不同意某件事时,大声说出来。