Ruby on Rails的respond_to导致奇怪的错误

时间:2010-09-16 20:49:26

标签: ruby-on-rails mime-types respond-to

通常情况下还有另一个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的奇怪语法,看起来有点像一个案例陈述,可能会导致错误,就像在顶部那样?

1 个答案:

答案 0 :(得分:1)

归来不能去,因为你传递了一个阻挡。该块不在控制器操作的直接上下文中执行。从块中返回时,实际上是从函数yielding(respond_to)返回,而不是从控制器操作返回。