Ruby on rails 应用程序控制器中的before\过滤器仅用于get请求
我需要在我的ApplicationController中设置一个before_过滤器,如果用户尚未同意新的服务条款,该过滤器将重定向用户。但是,我想将筛选器限制为仅基于请求类型运行 我想这样写: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
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
之间应该有一个逗号。已尝试编辑,但至少需要六个字符的更改