Discuz! Board

 找回密码
 立即注册
查看: 288|回复: 0

Rails 中的 MVC 基础知识:精简一切

[复制链接]

10

主题

10

帖子

32

积分

新手上路

积分
32
发表于 2024-2-14 13:57:50 | 显示全部楼层 |阅读模式
模型-视图-控制器 (MVC) 是一种用于构建软件系统的设计模式。 MVC 模式将应用程序逻辑与用户界面分开。 MVC 代表模型、视图和控制器,它们是 MVC Web 应用程序架构的三个主要组件。这些组件中的每一个都应作为离散单元运行。 MVC 组件的离散性质对于应用程序维护和测试至关重要。 我们经常听说在 Rails 中编写清晰简洁的代码的最佳方法是遵循“胖模型和瘦控制器”方法,该方法指的是 MVC 架构中的模型和控制器应该如何理想地协同工作。拥有一个“瘦”控制器(这是常见的做法)意味着所有非关键逻辑都会转移到模型;这简化了测试和维护。然而,我们建议更进一步采取“瘦身”方法:让你的模型和控制器都节食。通常我们关注模型和控制器,但是视图呢? View 也可以“胖”,事实上,我们认为 View 也应该节食。

每个MVC组件的功能是什么? 图片00 为了清楚地理解为什么我们应该保持所有 MVC 组件的精简,我们首先需要澄清每个组件的职责。 楷模 模型是数据库和应用程序之间的一层,用于存储与特定实体相关的业务逻辑。每个模型负责不同的实体,并将该实体与其他实体连接起来。模型通常由 富人人数数据 控制器调用。 例如,假设用户想要注册。为此,他们必须输入电子邮件、用户名和密码。所有这些属性都由控制器接收,控制器尝试创建新用户(在 MVC 架构中,该用户被概念化为“模型记录”)。模型运行验证:它检查输入的电子邮件格式是否正确、密码是否足够安全以及电子邮件和登录名是否唯一。如果验证成功,模型会将数据保存到数据库并after_save触发回调。回调的一个示例是发送给注册用户和管理员的通知电子邮件。




如果验证失败,模型将返回一个错误对象,该对象可以呈现并显示给用户。 控制器 控制器负责读取输入数据(请求)、选择适当的操作(业务操作)并返回结果输出数据(响应)。 例如,控制器从客户端接收数据,路由器在现有控制器中选择适当的操作。根据收到的参数,控制器执行以下操作: 身份验证,当控制器检查登录用户当前是否正在使用应用程序时 授权,当控制器检查用户是否有权执行操作时 permitted_attributes当操作控制器提供用于保护属性免受最终用户分配的接口时,输入参数的过滤 ( )。 调用模型或服务中的方法。 确定向客户端提供信息的格式(JSON、HTML、PDF、XML)并选择正确的视图。 意见 视图是附加模型状态的可视化。简单来说,View 就是用户看到的内容。它是唯一与用户直接交互的 MVC 组件。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|NFT数字藏品交易-全球交流论坛

GMT+8, 2024-11-24 01:13 , Processed in 0.046719 second(s), 20 queries .

NFTOTC!

快速回复 返回顶部 返回列表