首页 > 解决方案 > 拆分大型 Rails 控制器而不添加新模型

问题描述

拆分大型 Rails 控制器的最佳方法是什么,由于逻辑而很大(例如,具有多个提供程序的逻辑的结帐)?

目标只是拥有多个文件而不是一个文件,而无需添加新模型

标签: ruby-on-railscontroller

解决方案


没有通用的方法可以描述如何组织代码。如何拆分它是个人决定。但我可以给出一些共同的建议。我已经处理过这样的事情,可以想象你在那里有什么。因此,您可能会发现它们很有用:

  • 尝试小改动

  • 找到重复的代码并首先将其提取到此控制器中定义的方法中

  • 稍后您可以决定如何处理它们,但是像这样的小改动可以帮助您掌握全局
  • 如果可能,简化代码
  • 尝试弄清楚控制器的职责,特别是它的动作,这是最终目标
  • 一旦你清楚地理解了代码的职责,你就可以开始思考如何拆分它
  • 应根据代码块的责任进行拆分
  • 您可以使用表单对象、服务对象等模式。

推荐阅读