Есть ли способ загрузить приложение, но только он доступен мне? Или, может быть, с помощью определенного набора IP-адресов?Как ограничить доступ общественности к приложению rails
Причина в том, что мы хотим запустить несколько частных онлайн-тестов, прежде чем открывать приложение для широкой публики. До сих пор я придумал следующий код:
class ApplicationController < ActionController::Base
before_filter :restrict_access
def restrict_access
whitelist = ['127.0.0.123', '10.0.1.7', '10.0.1.8'].freeze
unless(whitelist.include? request.env['REMOTE_ADDR'])
render :file => "#{Rails.public_path}/500.html", :status => :unauthorized
return
end
end
end
Однако приведенный выше код еще делает основной файл макета (приложение/просмотров/макеты/application.html.erb), которое обнажает логотип и нижний колонтитулы. Для несанкционированного доступа мы хотим отобразить страницу, которая говорит что-то вроде «Ooops, мы все еще делаем несколько тестов и скоро будем опубликованы». Нет логотипа сайта, ничего. Просто простое сообщение.
Мы используем устройство как наш подлинный камень. Мы не хотим добавлять функции аутентификации только для ограничения доступа для частного бета-тестирования. Мы хотим сделать это по IP вместо этого.
Возможно ли такое? Возможно, код, над которым нужно просто работать? Или есть драгоценный камень, который мы можем использовать исключительно для этого требования?
Мой вебхостинг является Heroku. Не слишком уверен, что у меня есть доступ к файлам конфигурации сервера. Однако: layout => false сделал это. Спасибо за это! –
Также следует отобразить шаблон 503 вместо 500? –
@Christian: так как это всего лишь временная мера, я не думаю, что вам нужно беспокоиться о том, какой именно код ошибки использовать. Однако, поскольку вы отправляете код ошибки 401 (': unauthorized'), возможно, будет указано имя файла' 401.html'. – Matchu