ruby-on-rails - 拆分大型 Rails 控制器而不添加新模型
问题描述
拆分大型 Rails 控制器的最佳方法是什么,由于逻辑而很大(例如,具有多个提供程序的逻辑的结帐)?
目标只是拥有多个文件而不是一个文件,而无需添加新模型
解决方案
没有通用的方法可以描述如何组织代码。如何拆分它是个人决定。但我可以给出一些共同的建议。我已经处理过这样的事情,可以想象你在那里有什么。因此,您可能会发现它们很有用:
尝试小改动
找到重复的代码并首先将其提取到此控制器中定义的方法中
- 稍后您可以决定如何处理它们,但是像这样的小改动可以帮助您掌握全局
- 如果可能,简化代码
- 尝试弄清楚控制器的职责,特别是它的动作,这是最终目标
- 一旦你清楚地理解了代码的职责,你就可以开始思考如何拆分它
- 应根据代码块的责任进行拆分
- 您可以使用表单对象、服务对象等模式。
推荐阅读
- java - 导入、读取 csv 文件并将其显示到 javafx 的表视图中
- c# - 试图从十进制转换为二进制,它不工作 C#
- angular - 调用 platformBrowserDynamic().bootstrapModule(@NgModule) 返回 ASSERTION ERROR 传入的类型不是 NgModuleType,它没有 'ɵmod' 属性
- python - 在数组中解包的值太多(预期为 2)
- c++ - 如何逐行读取文件,以及每行中的内容用空格分隔并将其写入新文件
- javascript - Dialogflow 音频播放列表?下一个 上一个
- visual-studio-code - 一个窗口中的 VS Code 多个项目(不是“将项目添加到工作区”)
- c++ - 需要 VS2019 Spectre 缓解库吗?
- javascript - Webpack 的动态需求
- c++ - 函数在许多数字上转换为基数 2 时减去 1?