Я использую force_ssl в моих контроллерах Users и Sessions.Это прекрасно работает.Когда я выполняю действия на любом из этих контроллеров, мой браузер перенаправляет на https.Проблема в том, что после того, как пользователь перенаправлен на https, его браузер продолжит использовать https, по крайней мере, при использовании относительных URL-адресов.Я бы предпочел, чтобы пользователь использовал http для других страниц приложения.Я предложил 3 возможных стратегии, чтобы направлять пользователей на http для других страниц.
Используйте абсолютные URL-адреса вместо относительных URL-адресов.С этой стратегией я избегаю использования таких вещей, как root_path, но вместо этого использую root_url.Я могу установить default_url_options в моем контроллере приложения для использования протокола http.Таким образом, все ссылки в моем приложении будут пытаться вернуть пользователя к http.Они всегда могут переключить его на https в своем браузере вручную, но мне все равно, если они это сделают.
Напишите фильтр до, похожий на https://gist.github.com/1040964. Я не знаюэто действительно не нравится, потому что мне пришлось бы повторять, какие контроллеры / действия я заставляю ssl в контроллере приложения, а также конкретный контроллер, в котором я использую force_ssl.
Используйте этоплагин https://github.com/bartt/ssl_requirement. Этот плагин кажется хорошим, потому что он по умолчанию заставит http, если я ничего не скажу.Форсирование к ssl кажется очень похожим на метод include force_ssl.Это кажется хорошим решением, но я не хочу полагаться на плагин, если есть простой способ сделать это без него.
Я не могу решить, какой из этих 3варианты самые лучшие и ищу рекомендации.Я также новичок в Rails, поэтому, если какое-либо из этих решений "плохо", пожалуйста, дайте мне знать.Также, если есть другие варианты, о которых я не знаю, пожалуйста, дайте мне знать.
Какое решение лучше, если оно есть?(Рельсы 3.2)