13

我已经四处搜索,但无法找到这种类型的机械师的解决方案。我想在 Rails 中正常加载所有页面,但是每当我执行 ajax 请求时,我只想返回没有布局的页面。因此,每当我提出 ajax 请求时,我都可以?page=true在这些行中附加 a 或其他内容,并让 Rails 只返回没有布局的页面。

这可能吗?有没有更好的方法来做到这一点,我错过了?

谢谢你的帮助!

最终解决方案工作代码:

在控制器中,您需要做的就是format.htmlrespond_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 的修改使它更简单。

4

1 回答 1

9

您不需要添加该参数,request.xhr?当它是 Ajax 请求时,将在您的控制器中返回 true。只需使用它来决定是否渲染布局。

于 2012-07-02T01:40:04.500 回答