在控制器过滤器中禁用布局渲染

时间:2015-07-19 20:54:46

标签: ruby-on-rails pjax

使用pjax,如果request.headers['X-PJAX']为真,则尝试禁用布局。

不是将此逻辑放在我的所有路线中,有没有办法设置过滤器来执行此操作?

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

def show
  render layout: application
end

1 个答案:

答案 0 :(得分:0)

以下内容应该有效

SomeController < ApplicationController
  layout choose_layout

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

如果你只使用应用程序布局,我猜你可以将它放在应用程序控制器中,让它自动应用于所有控制器。