在Ruby on Rails中,控制器(controllers)和动作(actions)有什么区别?

5 浏览
0 Comments

在Ruby on Rails中,控制器(controllers)和动作(actions)有什么区别?

有人能告诉我在Ruby on Rails中控制器和动作的区别吗?\n我从官方Rails指南上找到了这个定义:\n

\n控制器的目的是接收应用程序的特定请求。路由决定哪个控制器接收哪个请求。通常,每个控制器有多个路由,不同的路由可以由不同的动作处理。每个动作的目的是收集信息并提供给视图。\n

\n我很困惑。\n请尽量简单明了,因为我是新手!\n谢谢!

0
0 Comments

什么是Ruby on Rails中的控制器和动作之间的区别?

在Ruby on Rails中,控制器和动作是两个重要的概念。控制器是负责处理用户请求并返回响应的组件,而动作则是控制器中具体执行的任务。那么为什么会有控制器和动作的区分呢?我们可以通过一个类比来解释这个问题。

假设我在一个繁忙的办公室工作,我需要向我的员工发出指令来完成一些工作。有时候我需要一个文件以便阅读:

“Ngozi,请把ABC.ASX年终财报给我。”

是的,先生!

有时候我需要员工对现有文件进行编辑:

“Sunita,你能编辑一下那份有关联邦演讲的报告吗?”

“当然!”是她的回答。

为了更好地组织我的员工,我根据他们的工作类型进行分配。但是我面临一个小问题,我有成千上万种不同类型的文件。有时候我想要获取(I)体育比赛结果,有时候我想要(ii)晚间新闻,还有时候我想要(iii)唐纳德·特朗普最新的凌晨4点推文合集。所以我创造了一个新的系统,我为每种类型的事物都指定了一个负责人。

Ngozi负责ASX(澳大利亚证券交易所)的财务结果。当我想要Ngozi做某件事情时,我会告诉他要做什么。

Sunita主要负责政治方面的工作。有时候我会让她做一些事情(比如撰写一份报告,这是一种“动作”,或者让她给我带来某个文件,这是另一种“动作”),她会完成任务。我喜欢让Sunita负责政治方面的工作,让Ngozi负责财务结果,这样可以更好地区分他们的责任。

通过这个类比,我们可以理解控制器就像是负责处理特定类型请求的人,而“动作”则是我想要完成的具体任务,比如获取文件、编辑文件甚至创建新文件。

希望这样能够解释清楚这个问题。

0
0 Comments

在Ruby on Rails中,控制器(controllers)和动作(actions)是MVC模型中的两个重要概念。控制器负责与程序交互,产生请求的视图或修改模型。而动作则是控制器执行的具体操作。

首先,需要理解MVC模型,MVC是一种编程网页应用程序(在RoR中)或一般用户界面的方法。MVC代表Model-View-Controller,分别对应着模型(Model)、视图(View)和控制器(Controller)。

模型代表数据库方案,它是应用程序检索信息的方式。视图则是获取、处理并呈现这些信息的方式,也就是用户在浏览器中看到的内容。而控制器则是与程序交互的部分,用于产生请求的视图或修改模型。

在Rails生态系统中,ActionController是一个类,具有一组预定义的方法,可以帮助您更轻松、更快速地执行标准的控制器操作,例如更新表单等。通过Action Controller,您可以修改模型(数据库)中的数据,或请求路由以查看数据等。

动作并不是与控制器分离的,它基本上就是控制器所做的事情。其他内容则是静态的。

如果您觉得这些概念仍然很难理解,可以尝试在Sinatra中构建一个非常基本的模块化应用程序,这样您就可以从基础开始了解事物是如何工作的。

0
0 Comments

在Ruby on Rails中,控制器(controllers)和动作(actions)有什么区别?

在Ruby on Rails中,控制器(controllers)是存放动作(methods)的文件。每次访问Rails应用程序时,都会向系统发送一个请求。Rails内部的各种技术会将这个请求路由(route)到特定的动作(action),其中你的代码可以使用传递的数据来执行某种动作(因此得名为动作)。动作存放在控制器中,以便给应用程序提供结构。所以,如果你访问`http://yourapp.com/users/new`,它会告诉Rails加载控制器中的`new`方法。你可以在控制器中拥有任意多的动作,但是你必须告诉Rails路由系统这些动作的存在,否则它们将无法访问。

更详细地说,Rails控制器只是Ruby类,存储了一系列动作。这些动作(实例方法)使用传递的数据(params)来创建对象,这些对象可以传递给模型,或者在其他方法中使用。每当你发送一个请求到Rails(访问一个URL),它首先使用ActionDispatch中间件将你的请求发送到正确的类(控制器)实例方法(动作),然后你的代码对这些数据进行操作。你作为开发者的任务是将正确的控制器与正确的模型连接起来,在正确的时间向用户呈现正确的数据。

为了解决你的问题,SO(Stack Overflow)通常更适合具体的编程问题(代码越多越好)。我会再次为你点赞。

0