С маршрутами Rails 3, как вы разрешаете только запросы от 127.0.0.1? - PullRequest
5 голосов
/ 16 июня 2010

Я пишу приложение, в котором несколько маршрутов должны быть доступны только с localhost. Похоже, это возможно с новой системой маршрутизации.

http://www.railsdispatch.com/posts/rails-3-makes-life-better

Здесь приведены примеры ограничения маршрутов на основе IP-адреса и настройки черного списка IP-адресов для ваших маршрутов, но меня интересует белый список только с одним IP-адресом.

Было бы здорово, если бы что-то подобное сработало:

get "/posts" => "posts#show", :constraints => {:ip => '127.0.0.1'}

Но это не так. Я просто пропускаю правильный синтаксис?

Ответы [ 2 ]

13 голосов
/ 19 октября 2011

вы можете сделать это

get "/posts" => "posts#show", :constraints => {:ip => /127.0.0.1/}

или это

constraints(:ip => /127.0.0.1/) do
  get "/posts" => "posts#show"
end
0 голосов
/ 22 июня 2010

следуя примеру в посте Иегуды, вы должны создать объект approriate для обработки сложных ограничений.так что просто редактирование этого примера может помочь.есть строка кода, которая проверяет, занесен ли какой-либо ip в черный список:

!@ips.include?(request.remote_ip)

Вы должны написать похожую логику (но проще), которая проверяет, если request.remote_ip == 127.0.0.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...