我已经四处搜索,但无法找到这种类型的机械师的解决方案。我想在 Rails 中正常加载所有页面,但是每当我执行 ajax 请求时,我只想返回没有布局的页面。因此,每当我提出 ajax 请求时,我都可以?page=true
在这些行中附加 a 或其他内容,并让 Rails 只返回没有布局的页面。
这可能吗?有没有更好的方法来做到这一点,我错过了?
谢谢你的帮助!
最终解决方案工作代码:
在控制器中,您需要做的就是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 的修改使它更简单。