У меня есть следующий маршрут:Как предотвратить force_ssl от уничтожения параметров при перенаправлении?
resources :widgets do
resources :orders
end
так, что запрос, например, до /widgets/1/orders/new
отправляется в OrderController, который может получить доступ к params[:widget_id]
, чтобы узнать, какой виджет приобретается.
Проблема в том, что я использую force_ssl
в OrderController. Это вызывает запросы на:
http://www.example.com/widgets/1/orders/new
быть перенаправлены (302) по адресу:
https://www.example.com/
Другими словами, force_ssl делает свою работу (перенаправление на HTTPS версию протокола URL), но разрушает параметры, заданные динамическим сегментом маршрута в процессе. Как я могу предотвратить это (предпочтительнее) или обойти его наименее оскорбительным способом?
Обратите внимание, что это размещено на Heroku, и так, например. перенаправление Apache не будет работать для меня.
Спасибо за этот ответ. К сожалению, с тех пор я развертывал приложение с SSL, которое было принудительно запущено во всем приложении (то есть «config.force_ssl = true» в config/environment/production.rb) как обходное решение, отличное от идеального. Поскольку я не могу легко проверить это, не делая этого на моем рабочем сервере, я не могу сказать, работает ли ваше решение или нет. : - \ – niemand
Работает для меня, спасибо! Вы создали запрос на растяжение? – jankubr
Спасибо! Ты действительно спас меня! – Pabloks