3

在具有可以正常加载或从 ajax ( jQuery.load()) 加载的页面的应用程序中,如何正确设置 rails 格式?现在,我在每个操作中都使用以下代码:

def show
  respond_to do |format|
    format.html { render layout: !request.xhr? }
  end
end

有没有办法让这个全局化,而不必在每个动作中都写出来?

编辑

我尝试按照评论中的建议将其放入 anafter_filter中,但这给了我一个错误Render and/or redirect were called multiple times in this action.

4

2 回答 2

9

您可以在控制器顶部执行以下操作:

layout :set_layout

def set_layout
  request.xhr? ? false : 'your_layout' # layout is false for ajax requests
end
于 2012-09-28T16:30:49.880 回答
2

想必大家都知道吧。缺少“?” request.xhr? 之后的字符。尝试这个。

layout :set_layout

def set_layout
  request.xhr? ? false : 'your_layout'
end
于 2013-09-26T18:00:15.840 回答