[英]Too may redirects rails respond_to
我有一個控制器操作方法,該方法從DB獲取機構的所有記錄,然后我想與作為RhoMobile應用程序的外部實體共享此響應,我使用了response_to格式化對JSON的響應。
def index
@establishments = Establishment.index(params).includes(:assessor)
@json_establishments = Establishment.all
respond_to do |format|
format.html { redirect_to(establishments_url) }
format.json { render json: @json_establishments.as_json }
end
end
當我導航到此操作時,出現錯誤
凈:: ERR_TOO_MANY_REDIRECTS
在控制台標簽上的chrome開發人員工具中。
當我刪除format.html旁邊的{ redirect_to(establishments_url) }
Establishmentments_url { redirect_to(establishments_url) }
時,它的工作狀態為406(不可接受),但是如果我在創建的操作視圖中使用搜索並單擊瀏覽器后退按鈕,則會得到就像是:
ActionController::UnknownFormat in EstablishmentsController#index ActionController::UnknownFormat <div class="source hidden" id="frame-source-0"> <div class="info"> Extracted source (around line <strong>#219</strong>): </div>
相反,當我刷新頁面時,我得到了預期的視圖。
難怪它卡在了重定向循環中。
原因 :
establishments_url
點EstablishmentsController#index
,和你的默認格式一定是html
。 因此,設置變量之后,它重定向到establishments_url
,再次嘗試加載EstablishmentsController#index
。
解決方案 :
除了重定向到URL外,您還需要考慮呈現視圖(就像在JSON格式中所做的那樣)。
format.html { render 'establishments/index' }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.