Reputation: 199
I need to set up a before_filter in my ApplicationController that redirects a user if they have not yet agreed to a new terms of service. However, I want to restrict the filter to only run based on the type of request.
I'd like to write something like this:
class ApplicationController
before_filter :filter, :only => {:method => :get}
Is something like this possible?
Upvotes: 5
Views: 2412
Reputation: 35370
before_filter :do_if_get
private
def do_if_get
return unless request.get?
# your GET only stuff here.
end
Or more simply
before_filter :get_filter, if: Proc.new {|c| request.get? }
private
def get_filter
# your GET only stuff here.
end
Upvotes: 8
Reputation: 35984
Compliments to deefours answer, this also work with Sinatra::Request
before do
something if request.get?
end
Upvotes: 0