Я использую
link_to "Click Here", "http://www.cnn.com"
и создаёт ссылку со следующим href
"localhost:3000http://www.cnn.com"
По какой-то причине он не распознает http://
как указание на внешний URL-адрес, а обрабатывает его как относительный URL-адрес.
Я попытался перейти к источнику link_to и скопировал его в мой помощник приложения. Я обнаружил, что .html_safe
выполняет преобразование, потому что, когда я вытащил его, оно работало, как ожидалось.
Я не могу понять, какой html_safe
он использует. Когда я скопировал в источник HAML: Util.html_safe , он также работал нормально. Поэтому я предполагаю, что html_safe
, который использует link_to
, разрешает что-то другое, даже если представление является файлом Haml.
Исходя из того, что я вижу в методе Haml, кажется, что html_safe
вызывает html_safe!
для преобразования строки, когда она считает ее небезопасной.
Я использую обычный набор символов американского английского / латиницы, поэтому не понимаю, почему он неправильно анализирует http://
Я использую Rails 2.3.5.
Пока что я планирую закодировать href в моем представлении, чтобы не вызывать link_to
для внешней ссылки, но если кто-нибудь сможет помочь мне разобраться в происходящем, я был бы очень признателен. Спасибо!