我正在查看一个代码,在其中一个控制器中,在其一个操作方法中首先调用服务来获取JSON,将其置于json_data
变量中,以及下一个和最后一个命令说render json: json_data
但我无法理解之后会发生什么?运行的下一行代码是什么?
答案 0 :(得分: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
的内容作为文本发送到浏览器。
您可能需要查看canonical Rails guide's documentation on render
,它提供了几个可以在控制器操作的上下文中调用它的示例。