控制器动作方法中的“渲染”在哪里?

时间:2013-06-12 02:22:06

标签: ruby-on-rails ruby-on-rails-3.2

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

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

1 个答案:

答案 0 :(得分:3)

render json: json_data实际上是函数中执行的最终语句。执行完毕后,该功能将自动退出。

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

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

您可能需要查看canonical Rails guide's documentation on render,它提供了几个可以在控制器操作的上下文中调用它的示例。