Search code examples
ruby-on-railsruby-on-rails-3before-filter

before_filter in application controller for only get requests


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?


Solution

  • 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