Как остановить ссылки в приложении 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}" %>
Другие вопросы по тегам