簡體   English   中英

可能會重定向rails response_to

[英]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_urlEstablishmentsController#index ,和你的默認格式一定是html 因此,設置變量之后,它重定向到establishments_url ,再次嘗試加載EstablishmentsController#index

解決方案

除了重定向到URL外,您還需要考慮呈現視圖(就像在JSON格式中所做的那樣)。

format.html { render 'establishments/index' }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM