在具有可以正常加载的页面或来自ajax(jQuery.load()
)的应用程序中,如何正确设置rails格式?现在我在每个动作中都使用以下代码:
def show
respond_to do |format|
format.html { render layout: !request.xhr? }
end
end
有没有办法让这个全局化,而不是必须在每个动作中都写出来?
修改:
我按照评论中的建议尝试将其放入after_filter
,但这给了我Render and/or redirect were called multiple times in this action.
答案 0 :(得分:9)
您可以在控制器顶部执行以下操作:
layout :set_layout
def set_layout
request.xhr? ? false : 'your_layout' # layout is false for ajax requests
end
答案 1 :(得分:2)
可能每个人都知道。缺少“?”请求后的字符.xhr?。试试这个。
layout :set_layout
def set_layout
request.xhr? ? false : 'your_layout'
end