2013-06-25 11 views
5

Potrzebuję skonfigurować before_filter w moim ApplicationController, który przekierowuje użytkownika, jeśli jeszcze nie zgodził się na nowe warunki korzystania z usługi. Jednak chcę ograniczyć filtr, aby działał tylko w oparciu o typ żądania.before_filter w kontrolerze aplikacji, aby uzyskać tylko żądania

Chciałbym napisać coś takiego:

class ApplicationController 

before_filter :filter, :only => {:method => :get} 

Czy coś takiego jest możliwe?

Odpowiedz

8
before_filter :do_if_get 

private 

    def do_if_get 
    return unless request.get? 

    # your GET only stuff here. 
    end 

Albo prościej

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

private 

    def get_filter 
    # your GET only stuff here. 
    end 
+0

Nie powinno być przecinek pomiędzy ': get_filter' i': if'. Próbowałem edytować, ale SO wymaga zmiany co najmniej sześciu znaków. – aviemet

+0

Dziękuję, poprawiono. – deefour

0

Komplementy do deefours odpowiedzieć, to również pracować z Sinatra::Request

before do 
    something if request.get? 
end 
Powiązane problemy