Make rails url helpers использовать соответствующий протокол?
Эй, я разрешаю доступ к моему приложению через https и http, и все работает нормально, за исключением тех случаев, когда я использую любой из методов _url
. Если я получаю доступ к представлению, которое использует такой метод с помощью https, он становится обслуживаемым как https, но сгенерированный url использует протокол http. Мне интересно, нормально ли это, или есть способ сделать это автоматически. Я надеялся, что рельсы автоматически сгенерируют соответствующий URL-адрес, основываясь на доступе к странице.
Если это не так, то каким будет лучший способ создать соответствующий URL-адрес? Будет ли это работать?
if request.ssl?
some_url(:protocol => "https")
else
some_url
end
Я бы предпочел, если бы смог придумать более автоматический подход. Может быть, если методы url с рельсами генерируются ://somedomain.com/some/path
, я предполагаю, что он автоматически адаптирует правильный протокол.
Спасибо, я был бы признателен за любую помощь.
Ответы
Ответ 1
Похоже, есть несколько подходов. Ни один из них не может быть идеальным в вашей конкретной среде, но в ActionView:: Helpers существует метод url_for, который может получить то, что вы хотите если вы начнете использовать это. Другой простой вариант - использовать относительные URL-адреса (например, "/controller/action" вместо "https://myawesomesite.com/controller/action" ), которые также могут быть сгенерированы с помощью метода url_for.
Кроме того, похоже, что вы получаете возможность работать, или копаться в пути, генерируя код пути и изменяя его самостоятельно.
Не самый идеальный ответ, который вы искали, но там мои $0,02!
Ответ 2
Взгляните на http://ianlotinsky.wordpress.com/2010/09/29/ssl-in-ruby-on-rails/