Я пишу приложение, где несколько из маршрутов должны только быть доступными от localhost. Похоже, что это возможно с новой системой маршрутизации.
http://www.railsdispatch.com/posts/rails-3-makes-life-better
Это имеет примеры ограничения маршрутов на основе IP-адреса и установки черный список IP-адреса для Ваших маршрутов, но я интересуюсь белым списком со всего одним IP-адресом.
Было бы здорово, если бы что-то вроде этого работало:
get "/posts" => "posts#show", :constraints => {:ip => '127.0.0.1'}
Но это не сделало. Я просто пропускаю правильный синтаксис?
Следуя примеру в сообщении Иегуды, вы должны создать соответствующий объект для обработки сложных ограничений. так что простое редактирование этого примера может помочь. есть строка кода, которая проверяет, находится ли какой-либо IP-адрес в черном списке:
!@ips.include?(request.remote_ip)
вы должны написать аналогичную логику (но более простую), которая проверяет, если request.remote_ip == 127.0.0.1