2013-06-25 9 views
5

Bir kullanıcı henüz yeni bir hizmet şartlarını kabul etmediyse, bir kullanıcıyı yönlendiren ApplicationController'da bir before_filter kurmam gerekiyor. Ancak, filtreyi yalnızca istek türüne göre çalışacak şekilde kısıtlamak istiyorum.önce_filter uygulama denetleyicide sadece istekleri almak için

class ApplicationController 

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

bu mümkün gibi bir şey mi:

Böyle bir şey yazmak istiyorum? get_filter` ve `: if` deefours için

cevap

8
before_filter :do_if_get 

private 

    def do_if_get 
    return unless request.get? 

    # your GET only stuff here. 
    end 

Veya daha basit

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

private 

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

ile çalışmak, cevap. Düzenleme için çalıştı, ancak SO bir altı karakter değişikliği gerektirir – aviemet

+0

Sabit, teşekkürler. – deefour

0

Övgü` arasında virgül olmalı bu da Sinatra::Request

before do 
    something if request.get? 
end 
İlgili konular