2010-09-16 64 views
0

還有另一個respond_to爲通常情況下,當一個param[:top]傳遞的一種特殊情況,所以另一個respond_to早些時候代碼:的Ruby on Rails的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 

,修正了錯誤。需要返回以便不會出現「雙重呈現錯誤」,因爲程序將流向另一個respond_to。但是我不知道respond_to這個奇怪的語法,看起來有點像案例陳述,可能會導致類似頂部的錯誤?

回答

1

因爲您傳遞了一個塊,所以返回無法到達那裏。該塊不會在控制器操作的上下文中執行。當你從塊返回時,你實際上是從函數yielding(respond_to)返回,而不是控制器操作。