2013-06-25 23 views
5

Tôi cần thiết lập một before_filter trong ApplicationController của mình để chuyển hướng người dùng nếu họ chưa đồng ý với điều khoản dịch vụ mới. Tuy nhiên, tôi muốn hạn chế bộ lọc chỉ chạy dựa trên loại yêu cầu.before_filter trong bộ điều khiển ứng dụng chỉ nhận được yêu cầu

Tôi muốn viết một cái gì đó như thế này:

class ApplicationController 

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

là một cái gì đó như thể này?

Trả lời

8
before_filter :do_if_get 

private 

    def do_if_get 
    return unless request.get? 

    # your GET only stuff here. 
    end 

Hoặc đơn giản hơn

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

private 

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

Nên có một dấu phẩy giữa ': get_filter' và': if'. Đã cố gắng chỉnh sửa, nhưng SO yêu cầu thay đổi tối thiểu sáu ký tự – aviemet

+0

Cảm ơn bạn đã khắc phục. – deefour

0

Khen ngợi để deefours trả lời, điều này cũng làm việc với Sinatra::Request

before do 
    something if request.get? 
end 
Các vấn đề liên quan