2015-07-19 69 views
1

使用pjax,如果request.headers['X-PJAX']为true,则尝试禁用布局。禁用控制器过滤器中的布局渲染

而不是把这个逻辑放在我所有的路线中,有没有办法设置一个过滤器来做到这一点?

after_filter lambda { 
    if request.headers['X-PJAX'] 
    # disable rendering with layout 
    end 
} 

def show 
    render layout: application 
end 

回答

0

下应该工作

SomeController < ApplicationController 
    layout choose_layout 

    def actions 
    . 
    . 
    . 
private 
    def choose_layout 
    request.headers['X-PJAX'].present? ? false : 'application' 
    end 
end 

如果你永远只能使用该应用程序的布局,我想你可以把它放在应用程序控制器,系统将自动适用于所有控制器。