2016-12-16 3 views
0

Railsアプリケーションのページを指す仮想サーバを設定しました。私はGETリクエストがmysite.com/BLACKLIST_WORDに当たったときBLACKLIST_WORDを無視するルートを定義する問題を抱えています。ここで私がしていることは、残念ながら、それは動作しません。正規表現ベースの制約を使ってRuby on Railsルートを定義してブラックリストに載っている単語を無視する方法

get '*ignore_me' => 'pages#unknown_url' , :constraints => { :ignore_me => /^/(?!BLACKLIST_WORD/).+/ } 

マイunknown_url方法は、要求に追加の処理を行いますが、私は何のためにブラックリストに載っていることを望みます。助けてください、歓声!それを確認せずに

答えて

0

これは私がやったことです。

get '*path', to: 'pages#unknown_url', constraints: BlacklistConstraint.new 

class BlacklistConstraint 
    def initialize 
    # @ips = Blacklist.retrieve_ips 
    @word_list = [ 
     "/BLACKLIST_WORD" 
    ] 
    end 

    def matches?(request) 
    # @ips.include?(request.remote_ip) 
    puts request.path 
    if @word_list.include?(request.path) 
     return false 
    else 
     return true 
    end 
    end 
end 
0

が、私はあなたが/

をエスケープする必要があると思いますだから

/^\/(?!BLACKLIST_WORD\/).+/ 

多分第二/でもオプションすべきですか? \/?

関連する問題