在控制器过滤器中禁用布局渲染
Disable layout rendering in controller filter
使用 pjax,如果 request.headers['X-PJAX']
为真,则尝试禁用布局。
有没有办法设置一个过滤器来执行此操作,而不是将此逻辑放在我的所有路由中?
after_filter lambda {
if request.headers['X-PJAX']
# disable rendering with layout
end
}
def show
render layout: application
end
以下应该有效
SomeController < ApplicationController
layout choose_layout
def actions
.
.
.
private
def choose_layout
request.headers['X-PJAX'].present? ? false : 'application'
end
end
如果您只使用应用程序布局,我想您可以将它放在应用程序控制器中,让它自动应用于所有控制器。
使用 pjax,如果 request.headers['X-PJAX']
为真,则尝试禁用布局。
有没有办法设置一个过滤器来执行此操作,而不是将此逻辑放在我的所有路由中?
after_filter lambda {
if request.headers['X-PJAX']
# disable rendering with layout
end
}
def show
render layout: application
end
以下应该有效
SomeController < ApplicationController
layout choose_layout
def actions
.
.
.
private
def choose_layout
request.headers['X-PJAX'].present? ? false : 'application'
end
end
如果您只使用应用程序布局,我想您可以将它放在应用程序控制器中,让它自动应用于所有控制器。