Rails:转换纯文本以与rails_autolink

时间:2015-12-30 21:28:46

标签: ruby-on-rails hyperlink autolink

我有一个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

1 个答案:

答案 0 :(得分:1)

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