Подтвердить что ты не робот

Получение справки URL-адресов Rails для автоматического вывода URL-адресов https

Я разрабатываю сайт, который очень часто смешивает http и https - что лучший/самый простой способ заставить ссылки использовать правильный протокол для маршрута - может ли он указываться в файле маршрутов?

Скажем, у меня есть следующий маршрут в Rails 3.

match "/test" => "test#index", :as => :test, :constraints => { :protocol => 'https' }

Если я на странице http, и я использую test_url(), он выведет http://domain.com/test. Вместо этого я хочу https://domain.com/test.

Я знаю, что могу использовать test_url(:secure => true), но это дублирующая логика.

Я знаю, что мог http://domain.com/test в https://domain.com/test, но это дополнительный перенаправление, плюс он не работает на сообщениях формы.

Идеи?

4b9b3361

Ответ 2

Используйте test_url (: protocol = > 'https') для URL-адресов https.

Ответ 3

Не пробовал, но добавьте это в свой ApplicationController:

def default_url_options(options={})
 { :secure => true }
end 

Ответ 4

def default_url_options(options={})
 { :protocol => "https" }
end

Ответ 5

Для Rails 3.2 я использовал комбинацию ответа @apneadiving. Добавление кода ниже в мой ApplicationController

def default_url_options(options={})
  options.merge{ :protocol => "https" }
end

Ответ 7

Вы можете использовать плагин под названием ss_requirement, он предоставит вам такие методы, как ssl_required ssl_allowed

Вы можете просто добавить это в свой контроллер, чтобы включить ot disable https при любом действии

ssl_allowed :login, :update_profile

https://github.com/rails/ssl_requirement