Есть ли помощник ruby ​​для создания абсолютных ссылок из ссылок, внесенных пользователем, если они не являются абсолютными? - PullRequest
2 голосов
/ 13 мая 2010

Например,

Пользователь добавляет это "iamsmelly.com".

И если я добавлю href к этому, ссылка будет

www.mywebsite.com / iamsmelly.com

Есть ли способ сделать его абсолютным, если перед ним не стоит http: //?

Или я должен вернуться к jQuery для этого?

Ответы [ 2 ]

3 голосов
/ 13 мая 2010

Вероятно, хорошее место, чтобы справиться с этим - 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
2 голосов
/ 13 мая 2010

Я искал что-то подобное раньше, но не повезло. Я сделал вспомогательный метод так:

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