如果用户贡献的链接不是绝对的,那么是否有一个红宝石帮助器用于创建绝对链接?

时间:2010-05-13 18:28:13

标签: ruby-on-rails jruby

例如,

用户添加此“iamsmelly.com”。

如果我为此添加一个href,链接将是

www.mywebsite.com/iamsmelly.com

如果它没有以http://?

为前缀,有没有办法让它成为绝对的

或者我应该为此恢复jQuery?

2 个答案:

答案 0 :(得分:3)

处理此问题的好地方可能是您模型上的before_save。我不知道预定义的帮助器(虽然auto_link有点接近)但是相对简单的正则表达式应该可以完成这项任务:

class User < ActiveRecord::Base
   before_save :check_links
   def check_links
     self.link = "http://" + self.link unless self.link.match /^(https?|ftp):\/\//
   end
end

答案 1 :(得分:2)

我以前找过类似的东西但没有运气。我做了一个像这样的帮手方法:

def ensure_absolute(str_link)
  (str_link.include?("http://") || str_link.include?("https://")) ? str_link : ("http://"+str_link)
end