2

这两个:

<%= 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标签? 返回字符串。hrefwww.the_url_i_want.com@a_model_instance.urlwww.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>

但似乎很不合规矩

4

3 回答 3

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)
于 2012-08-14T16:02:01.973 回答
2

如果您在 url 的开头添加 http 它不应该在我认为的域之前添加

于 2012-08-14T16:02:11.840 回答
0

您可以插入 url raw

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

或尝试

<%= link_to "My url string", "#{@a_model_instance.url}" %>
于 2012-08-14T15:57:36.250 回答