2012-08-14 4 views
0

Оба эти:Как остановить ссылки на рельсы приложения которые начинаются с префикса домена

<%= content_tag("a", @a_model_instance.name, :href => @a_model_instance.url) %> 
<a href="<%= @a_model_instance.url %>"><%= @a_model_instance.url %></a> 

результат в URLs с 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> 

Но, кажется, очень не-railsy

+1

Если вы добавите http в начале URL-адреса, он не должен дописывать домен, я думаю, – ryudice

+0

Спасибо @ryudice, есть ли способ «рельсов»? И вы хотите опубликовать мой ответ в качестве ответа, и я буду отмечать его правильно. – AJP

+0

Вы должны использовать link_to not content_tag –

ответ

2

если добавить HTTP в начале URL оно не должно предварять домен я думаю

0

Вы можете вставить URL сырец

<%= link_to "Visit Stackoverflow", "http://www.stackoverflow.com/" %> 

или попробовать

<%= link_to "My url string", "#{@a_model_instance.url}" %> 
+0

Спасибо за предложение '<% = link_to" My url string "," #{@a_model_instance.url} "%>', но это дает то же самое неверное: '0.0.0.0:3000/model_name/www.the_url_i_want.com ' – AJP

+0

- это URL-адрес, который вы пытаетесь сделать сохраненным в базе данных? –

2

Вы можете предварять 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)