Ruby on rails 应用程序控制器中的before\过滤器仅用于get请求

Ruby on rails 应用程序控制器中的before\过滤器仅用于get请求,ruby-on-rails,ruby-on-rails-3,before-filter,Ruby On Rails,Ruby On Rails 3,Before Filter,我需要在我的ApplicationController中设置一个before_过滤器,如果用户尚未同意新的服务条款,该过滤器将重定向用户。但是,我想将筛选器限制为仅基于请求类型运行 我想这样写: class ApplicationController before_filter :filter, :only => {:method => :get} 这样的事情可能吗 before_filter :do_if_get private def do_if_get re

我需要在我的ApplicationController中设置一个before_过滤器,如果用户尚未同意新的服务条款,该过滤器将重定向用户。但是,我想将筛选器限制为仅基于请求类型运行

我想这样写:

class ApplicationController

before_filter :filter, :only => {:method => :get}
这样的事情可能吗

before_filter :do_if_get

private

  def do_if_get
    return unless request.get?

    # your GET only stuff here.
  end
或者更简单地说

before_filter :get_filter, if: Proc.new {|c| request.get? }

private

  def get_filter
    # your GET only stuff here.
  end

对于Deefour的回答,这也适用于
Sinatra::Request

before do
  something if request.get?
end

:get_filter
:if
之间应该有一个逗号。已尝试编辑,但至少需要六个字符的更改