我已经四处寻找并且无法找到这种机制的解决方案.我想在Rails中正常加载所有页面,但每当我执行ajax请求时,我只想返回没有布局的页面.因此,每当我做一个ajax请求时,我可以?page=true在这些行上附加一个或者某个东西,让Rails只返回没有布局的页面.
这可能吗?有没有更好的方法来做到我错过了?
谢谢你的帮助!
最终解决方案工作代码
在控制器中,您需要做的就是format.html在respond_to块中附加一点逻辑.
show例如,在该方法中
def show
# code beforehand
respond_to do |format|
format.html { render :layout => !request.xhr? }
# other formats
end
end
Run Code Online (Sandbox Code Playgroud)
就是这样!在AJAX请求期间阻止布局!
注意:由于smathy对他的回答的评论,这进一步简化了.我最初有format.html { render :layout => nil if request.xhr? } 这个解决方案同样适用,但smathy的修改使它更简单.
您不需要添加该参数,request.xhr?当它是Ajax请求时,将在控制器中返回true.只需使用它来决定是否渲染布局.
| 归档时间: |
|
| 查看次数: |
5511 次 |
| 最近记录: |