Похожие: Rails 3 маршрутизация SSL перенаправляет с https на http (к сожалению, не работает).
Дублируйте, но у меня не получился ответ: Настройка ssl на устройстве
У меня есть веб-приложение, которое уже давно работает нормально, но мне нужно добавить SSL к путям входа / редактирования acct. Я использую Devise для аутентификации. Я нашел запись в вики разработки, которая сделала процесс довольно простым, но, черт побери, могу ли я заставить его работать. Простая часть была такой:
#in config/environments/production.rb
config.to_prepare { Devise::SessionsController.force_ssl }
config.to_prepare { Devise::RegistrationsController.force_ssl }
И тогда в этом гисте около 25 строк кода: https://gist.github.com/1040964
Я получил это, чтобы работать достаточно хорошо, но когда я выхожу, я получаю 301 из действия DELETE сессий, которое отправляет меня в GET.
Started DELETE "/users/sign_out" for 98.246.164.160 at 2012-03-02 01:45:42 +0000
[02 Mar 01:45 10886 INFO] Processing by Devise::SessionsController#destroy as HTML
[02 Mar 01:45 10886 INFO] Parameters: {"authenticity_token"=>"fI4VZ4V0Go2Civo3sJz8Dv5/Wtaa90ynaYr+xxx="}
[02 Mar 01:45 10886 DEBUG] Parameters: {"_method"=>"delete", "authenticity_token"=>"fI4VZ4V0Go2Civo3sJz8Dv5/Wtaa90ynaYr+xxxx=", "action"=>"destroy", "controller"=>"devise/sessions"}
[02 Mar 01:45 10886 INFO] Redirected to https://ec2-xx-xx-106-255.us-west-2.compute.amazonaws.com/users/sign_out
[02 Mar 01:45 10886 INFO] Completed 301 Moved Permanently in 3ms
Started GET "/users/sign_out" for xx.xx.164.160 at 2012-03-02 01:45:42 +0000
[02 Mar 01:45 10886 FATAL]
ActionController::RoutingError (No route matches [GET] "/users/sign_out"):
Так что я думаю, что мне нужно начать с нуля. Какой самый простой способ заставить любой путь Devise использовать https, но остальные пути в моем приложении используют http? Я попробовал это (из SO поста вверху):
#devise routes
scope :protocol => 'https://', :constraints => { :protocol => 'https://' } do
devise_for :users, :controllers => { :registrations => :registrations }
devise_for :admins
end
Но не уходи. Мне нужно лучшее предложение.