before_action除了:PATCH

时间:2017-11-14 12:43:18

标签: ruby-on-rails

我在我的应用程序控制器中定义了我的标题所需的一些变量。但我想为我的AJAX请求禁用它。所以我想知道是否可以为所有PATCH请求禁用before操作。就像下面的例子一样

的ApplicationController:

before_action :some_value, except: PATCH method

def some_value
  @main_group = current_user.groups.first
  @groups = current_user.groups - @main_group
end

2 个答案:

答案 0 :(得分:6)

要检查该请求是否为AJAX请求,您可以使用request.xhr?方法。请参阅Rails API doc

要在before_action中使用它,您可以编写如下内容:

before_action :some_value, unless: -> { request.xhr? }

答案 1 :(得分:0)

不知道是否有办法在before_action声明中定义,但您猜测可以查看request.patch?的方法,如下所示:

def some_value
  if !request.patch?
    @main_group = current_user.groups.first
    @groups = current_user.groups - @main_group
  end
end

希望这会有所帮助,祝你好运