我已經搜索過,並且一直未能找到此類機制的解決方案。我想在Rails中正常加載所有頁面,但每當我做一個Ajax請求時,我只想返回沒有佈局的頁面。因此,無論何時我做一個Ajax請求,我都可以在這些行上附加?page=true
或其他東西,並讓Rails只返回沒有佈局的頁面。Rails在AJAX請求期間阻止佈局
這可能嗎?有沒有更好的方式來做到這一點,我失蹤了?
感謝您的幫助!
最終解決方案的工作代碼:
在控制所有你需要做的就是添加一點邏輯的format.html
在respond_to
塊。
在show
方法例如
def show
# code beforehand
respond_to do |format|
format.html { render :layout => !request.xhr? }
# other formats
end
end
就是這樣!在AJAX請求期間阻止佈局!
注意:感謝smathy評論他的答案,這進一步簡化了。我原本有format.html { render :layout => nil if request.xhr? }
這個解決方案工作得很好,但smathy的修改使它更簡單。
是否可以在應用程序控制器中爲每個ajax請求執行相同操作?的 –
可能重複[從不響應XHR時呈現佈局(http://stackoverflow.com/questions/2444866/never-render-a-layout-in-response-to-xhrs) – fivedigit