我有一个rails应用程序,用户可以在pin模型中发布链接。以下是要解释的代码:
应用程序/视图/针/ _form.html.erb:
<%= f.text_field :website, placeholder: "http://wwww.website.com" %>
在我看来:
<% if @pin.website.blank? %>
<% else %>
<a href="<%= @pin.website %>" target="_blank">
<% end %>
如果用户将完整的网址(http://www.website.com)放在字段中,但是如果他忘记添加'http://'=&gt; (www.website.com)该页面显然已被破坏。
我正在考虑使用gem auto_link,但我对如何使用它有点困惑。这是我的配置:
gemfile.rb
gem 'rails_autolink', '~> 1.1', '>= 1.1.6'
观点:
<% if @pin.website.blank? %>
<% else %>
<%= auto_link(@pin.website) %>
<% end %>
application.rb中
require 'rails_autolink'
但它不起作用,链接显示为纯文本。任何帮助,我错过了什么。我一直在寻找其他线索,但似乎没有解决我的问题......
更新: 如果用户只使用www传递URL,它现在运行良好。没有http://,但有没有办法将这样的原始文本转换为:website.com到http://www.website.com?
答案 0 :(得分:1)
自动链接仍需要网址上的前缀HTTP
或HTTPS
。我的建议是从控制器层开始,然后从那里解析它。如果提交的网站中没有“http”,则添加它。