链接到外部URL对象RoR

时间:2012-08-02 14:28:09

标签: ruby-on-rails ruby-on-rails-3

目前,当我的应用中的用户创建新的职位帖时,他们会输入一个链接到其网站上的工作页面的网址。然后,我想用它来链接到他们的网站。

它作为job.job_url存储在我的数据库中,我在控制器中定义了一个对象@link,以查找作业和相关的URL。

我目前有以下代码来遍历所有作业并提供链接:

 <section id="job-wrapper">
   <% @jobs.each do |job| %>
    <%= link_to @link.job_url do %>
       <%= job.title %>
       <%= job.location %>
       <%= job.job_type %>
       <%= job.salary %>
       <%= job.company %>
   <% end %>
  <% end %>
 </section>

我遇到的问题是,如果没有包含http:// rails的URL,则假定链接是内部链接,因此会生成localhost:3000/www.google.com之类的链接。

我有办法确保Rails只在实例中将链接识别为外部链接吗?或者有人可以解释我如何在创建的所有链接上添加http://,除非用户已经说明了它?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

感谢您的帮助!

我设法通过创建一个名为URLhelper

的新助手来解决这个问题

这包含:

 module UrlHelper
   def url_with_protocol(url)
     /^http/.match(url) ? url : "http://#{url}"
   end
 end

然后我使用了以下link_to

 <%= link_to url_with_protocol(@link.job_url), :target => '_blank' do %>

由于