通常情况下还有另一个respond_to
,以及传入param[:top]
的特殊情况,因此代码中有另一个respond_to
:
respond_to do |format|
format.html { render :top_page_analytics }
format.json { render :json => @analytics }
format.xml { render :xml => @analytics }
return
end
但上面的代码实际上为json缺少模板提出了一个奇怪的错误,并进一步调试导致:
respond_to do |format|
format.html { render :top_page_analytics }
format.json { render :json => @analytics }
format.xml { render :xml => @analytics }
end
return
修复了这个bug。需要返回以便不会出现“双重渲染错误”,因为程序将流向另一个respond_to
。但我想知道respond_to
的奇怪语法,看起来有点像一个案例陈述,可能会导致错误,就像在顶部那样?
答案 0 :(得分:1)
归来不能去,因为你传递了一个阻挡。该块不在控制器操作的直接上下文中执行。从块中返回时,实际上是从函数yielding(respond_to)返回,而不是从控制器操作返回。