0

我有一个 Rails 应用程序,用户可以在其中发布 pin 模型内的链接。这是解释的代码:

app/views/pins/_form.html.erb:

 <%= f.text_field :website, placeholder: "http://wwww.website.com" %>

在我看来:

<% if @pin.website.blank? %>
<% else %>
  <a href="<%= @pin.website %>" target="_blank">
<% end %>

如果用户将完整的 url ( http://www.website.com ) 放在该字段中,效果很好,但如果他忘记添加 'http://' => (www.website.com) 页面明显坏了。

我正在考虑使用 gem auto_link但我对如何使用它有点困惑。这是我的配置:

宝石文件.rb

gem 'rails_autolink', '~> 1.1', '>= 1.1.6'

意见:

<% if @pin.website.blank? %>
<% else %>
  <%= auto_link(@pin.website) %>
<% end %>

应用程序.rb

require 'rails_autolink'

但这不起作用,链接显示为纯文本。任何帮助,我错过了什么。我一直在寻找其他线程,但似乎没有任何问题可以解决我的问题......

更新:如果用户只使用 www 传递 url,它现在运行良好。并且没有 http://,但是有没有办法将这样的原始文本转换为: website.com 到http://www.website.com

4

1 回答 1

1

自动链接仍然需要前置HTTPHTTPS网址。我的建议是从控制器层开始并从那里解析它。如果提交的网站中没有“http”,则添加它。

于 2015-12-30T22:37:30.637 回答