【问题标题】:Where does routes fit in mvc architecture路由在哪里适合 mvc 架构
【发布时间】:2021-01-01 04:28:17
【问题描述】:

我是编程新手,如果这个问题听起来很愚蠢,我很抱歉

我正在阅读来自turtorial point的MVC框架

从博文中,我能够在 MVC 中理解这一点

M -> 型号

模型负责处理 b/w 控制器和视图所需的数据。这可能是从数据库中获取数据?

V -> 查看

所有用户看到/交互的东西 -> 主要是前端?

C-控制器

处理传入请求,获取参数或正文,转换请求并将其发送到模型。模型将返回数据并将其发送给控制器。然后控制器可以处理/操作数据并将其发送到视图?

根据我以上的理解,我认为路由和控制器是相同的。我从 Ruby on rails 开始,我看到了包含 routes.rb 的文件夹配置。

有人可以确认我的上述理解是否正确,如果是的话,你能想到任何特殊原因,ruby on rails 代码会有一个包含 routes.rb 文件的文件夹配置吗?

【问题讨论】:

    标签: ruby-on-rails ruby model-view-controller


    【解决方案1】:

    您对模型、视图和控制器的理解似乎很好;你说的都是对的。

    根据我以上的理解,我认为路由和控制器是一样的。

    存在路由文件以确定如何处理 URL

    假设 StackOverflow 是在 Rails 上构建的,并且您希望此问题 (/questions/63884488/where-does-routes-fit-in-mvc-architecture) 的路径指向 QuestionsController#show

    不知何故,您的 Rails 应用程序需要知道如何处理格式为:/questions/<question_id>/* 的路径。那是路线的工作,而不是控制器的工作;控制器不知道它响应哪种路径格式。

    你可以让多个不同的路径结构指向同一个控制器动作,或者你可以让一个路径结构有条件地指向多个控制器动作。

    【讨论】:

      【解决方案2】:

      您对模型、视图和控制器的理解是正确的。 Routes 充当 MVC 架构中的中间人。让我用一个例子来解释:

      假设有一个 http 请求进来,它首先遇到的是路由。路由决定了:我需要将这个请求发送给谁? Routes 将使用请求的路径和请求正文来确定请求将被发送到哪里。

      Routes 有一个与控制器关联的路径和方法列表。

      控制器用于控制资源,例如:用户控制器将弄清楚如何处理有关用户的请求。

      因此,向用户控制器发送用户请求是路由作业,也是要告诉的路由作业 用户控制器如何处理用户请求。这就是路由的作用。

      【讨论】:

        猜你喜欢
        • 2015-01-17
        • 2010-09-16
        • 2011-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-22
        • 1970-01-01
        • 2017-01-17
        相关资源
        最近更新 更多