在Ruby on Rails开发(或一般的MVC)中,我应该遵循什么快速规则来放置逻辑.

请给出肯定的回答——用Do put this here而不是Don't put that there.

推荐答案

MVC

Controller:在这里输入代码,这些代码与计算出用户想要什么、决定给他们什么、计算出他们是否登录、他们是否应该看到某些数据等有关.最后,控制器查看请求并计算出要显示的数据(模型)和要呈现的视图.如果你怀疑代码是否应该进入控制器,那么它可能不应该.保持你的控制器skinny.

View:视图应只包含显示数据(模型)的最低代码,不应进行大量处理或计算,应显示模型计算(或汇总)的数据,或从控制器生成的数据.如果视图确实需要进行模型或控制器无法完成的处理,请将代码放入助手中.视图中的大量Ruby代码使页面标记难以阅读.

Model:你的模型应该是与你的数据(组成你网站的实体,如用户、帖子、帐户、朋友等)相关的代码所在的地方.如果代码需要保存、更新或汇总与实体相关的数据,请将其放在此处.它将在您的视图和控制器中重复使用.

Ruby-on-rails相关问答推荐

使用turbo流的部分渲染在rails 7中不起作用.

本地主机的上衣配置

搜查升级到 4.0.0 和 ActionText::RichText

删除链接不起作用,重定向 echo 示 Ruby

Rspec期望()与期望{}

Gem::Ext::BuildError:ERROR:无法在macOS Monterey上构建Gem本机扩展

Mongoid 3 + Heroku (MongoHQ) 导致 Moped::Errors::OperationFailure

Rails 模型.有效吗?刷新自定义错误并错误地返回 true

rails 3.2 迁移无法在更改方法中向 create_table 添加索引

使用 javascript 提交 Rails 远程表单

如何使用失败try 次数使设计可锁定

如何在 RoR 中实现成就系统

如何在 Rails 1.2.3 中使复选框默认为选中?

Rails 3.0 中的 f.error_messages

你如何覆盖 form_for 助手中的类名?

如何在 Ruby 中搜索数组?

如何在每个操作的基础上禁用 Ruby on Rails 的日志(log)记录?

Rails:每个环境的初始化程序?

在任何来源中都找不到 thread_safe-0.3.0

在 Rails 中显示主机名和数据库名