2015-07-19 81 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 

如果你永遠只能使用該應用程序的佈局,我想你可以把它放在應用程序控制器,系統將自動適用於所有控制器。