0

我正在查看一个代码,该代码在它的一个控制器中,在它的一个操作方法中首先调用一个服务来获取 JSON,将它放在一个json_data变量中,至于下一个和最后一个命令说render json: json_data

但我无法理解之后会发生什么?运行的下一行代码是什么?

4

1 回答 1

3

render json: json_data实际上是函数中执行的最后一条语句。执行后,该函数自动退出。

每当在 Rails 控制器中“渲染”某些东西时,无论是动作、模板还是其他,渲染都是控制器函数中最终执行的语句。

在 , 的情况下render json: json_data,将通过定义的任何方法ActionController呈现传递的参数, 。json_data在本例中,它是 JSON,因此 Rails 以 JSON 格式将内容呈现json_data给浏览器,并带有相应的标头。相比之下,如果语句是render text: json_data,则 ActionController 会将 的内容json_data作为文本发送到浏览器。

您可能想查看关于 的规范 Rails 指南文档render,其中提供了几个可以在控制器操作的上下文中调用的示例。

于 2013-06-12T02:25:18.210 回答