Как остановить ссылки в приложении rails с префиксом домена
Обе эти:
<%= content_tag("a", @a_model_instance.name, :href => @a_model_instance.url) %>
<a href="<%= @a_model_instance.url %>"><%= @a_model_instance.url %></a>
результат в URL со значениями href:
0.0.0.0:3000/model_name/www.the_url_i_want.com
Как вы мешаете этому получить a
теги с href
значения www.the_url_i_want.com
?@a_model_instance.url
возвращает строку www.the_url_i_want.com
,
редактировать - одно решение
Это работает:
<%= content_tag("a", @a_model_instance.name, :href => "http://#{@a_model_instance.url}") %>
<a href="http://<%= @a_model_instance.url %>"><%= @a_model_instance.url %></a>
Но кажется очень безрассудным
3 ответа
Решение
Я думаю, что если вы добавите http в начале URL, он не должен начинать домен
Вы можете добавить URL к протоколу, если он отсутствует:
module UrlHelper
def url_with_protocol(url)
/^http/.match(url) ? url : "http://#{url}"
end
end
А потом:
link_to @a_model_instance.name, url_with_protocol(@a_model_instance.url)
Вы можете вставить URL сырой
<%= link_to "Visit Stackru", "http://www.stackru.com/" %>
или попробуйте
<%= link_to "My url string", "#{@a_model_instance.url}" %>