Ruby 面试题
目录

Ruby on Rails 中的 MVC 模式是如何工作的?

· 约 3 分钟读完 · 第 146 / 199 章

推荐答案

在 Ruby on Rails 中,MVC(Model-View-Controller)模式是一种将应用程序分为三个主要组件的架构模式:

  1. Model(模型):负责处理应用程序的数据逻辑,与数据库进行交互。模型通常包含数据验证、业务规则和数据持久化逻辑。
  2. View(视图):负责呈现用户界面,通常是 HTML 模板。视图从控制器获取数据并将其展示给用户。
  3. Controller(控制器):作为模型和视图之间的中介,处理用户请求,调用模型处理数据,并将结果传递给视图进行展示。

本题详细解读

Model(模型)

在 Rails 中,模型通常继承自 ActiveRecord::Base,它提供了与数据库交互的接口。模型类通常对应数据库中的一张表,模型实例对应表中的一条记录。模型的主要职责包括:

  • 数据验证:确保数据的完整性和有效性。
  • 业务逻辑:处理与数据相关的业务规则。
  • 数据库操作:执行 CRUD(创建、读取、更新、删除)操作。

例如,一个 User 模型可能如下所示:

View(视图)

视图是用户界面的呈现层,通常使用 ERB(Embedded Ruby)模板来生成 HTML。视图的主要职责是:

  • 展示数据:将控制器传递的数据展示给用户。
  • 用户交互:提供表单、按钮等交互元素,供用户与应用程序进行交互。

例如,一个显示用户信息的视图可能如下所示:

Controller(控制器)

控制器是 MVC 模式中的协调者,负责处理用户请求并调用适当的模型和视图。控制器的主要职责包括:

  • 路由请求:根据路由规则将请求分发到相应的控制器动作。
  • 调用模型:执行必要的业务逻辑和数据操作。
  • 渲染视图:将处理结果传递给视图进行展示。

例如,一个处理用户信息的控制器可能如下所示:

在这个例子中,show 动作从数据库中查找用户,并将结果传递给视图进行展示。

总结

MVC 模式通过将应用程序分为模型、视图和控制器三个部分,实现了关注点分离,使得代码更易于维护和扩展。Rails 框架通过内置的约定和工具,简化了 MVC 模式的实现,使开发者能够快速构建功能强大的 Web 应用程序。