Ruby on Rails/入门/模型-视图-控制器
外观
< Ruby on Rails | 入门
如前所述,Rails 依赖于 MVC 模式。模型-视图-控制器比传统概念有一些优势
- 它将您的业务逻辑与(基于 HTML 的)视图分开
- 使您的代码整洁,并保持在一个地方
模型表示数据库中的信息和数据。它尽可能独立于数据库(Rails 自带 O/R-Mapper,允许您更改为应用程序提供数据的数据库,但不更改应用程序本身)。模型还在数据进入数据库之前进行验证。大多数情况下,您将在数据库中找到一个表,并在应用程序中找到一个相应的模型。
视图是应用程序的展示层。视图层负责渲染您的模型为一种或多种格式,例如 XHTML、XML 或甚至 Javascript。Rails 支持任意文本渲染,因此支持所有文本格式,但也包括对 Javascript 和 XML 的显式支持。在视图中,您将找到(大多数情况下)带有嵌入式 Ruby 代码的 HTML。在 Rails 中,视图默认情况下使用ERb 实现。
控制器连接模型和视图。在 Rails 中,控制器作为ActionController 类实现。控制器知道如何处理来自模型的数据,以及如何将数据传递到视图。控制器不应包含任何与数据库相关的操作(例如,在数据保存到数据库之前修改数据)。这应该在适当的模型中处理。
当您在视图中经常使用的代码太大/太乱,无法放在视图中时,您可以在助手内为它定义一个方法。在助手内定义的所有方法都可以在视图中自动使用。
当前的最佳实践包括
- 胖模型和瘦控制器
- 业务逻辑应该始终放在模型中
- 视图应该包含最少的代码
- 使用助手!
- 使用模型
- DRY(不要重复自己)