繁体   English   中英

如何防止Rails控制器中的业务逻辑

[英]How to prevent business logic in Rails controllers

如果我正确理解MVC,则控制器仅应包含将模型与视图粘合在一起的逻辑。 它包含应用程序逻辑,例如身份验证,会话和其他应用程序逻辑。 另一方面,模型应执行应用程序的业务逻辑,并且视图应根据模型的更改进行更新。 但是,您如何在Rails中做到这一点?

我的控制器包含查找模型对象等的逻辑,然后作为响应更新视图。

我是否误解了应用程序逻辑和业务逻辑。 如果有人可以帮助我理解MVC,我将不胜感激。

Rails是MVC的良好实现,并允许良好的抽象。 查找模型对象不是业务逻辑。

为确保正确执行此操作,请使控制器简短; 通过创建新方法将任何重要逻辑移至模型; 使用内置的rails助手和方法; 尽可能遵循RESTful架构(虽然不完美,但有帮助),并请其他人与您讨论您的代码。

问题的部分原因是,Rails体系结构使它看起来像是模型= ActiveRecord,但这不一定是正确的。 Model类或模块可以是您喜欢的任何东西。

当模型为ActiveRecord(在大多数情况下确实很合理)时,您可以将方法添加到那些可由控制器调用并包含业务逻辑的类中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM