Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make user-inputted url into external link in rails

I want users to be able to enter a url and then put a link to that url in my view.

Valid inputs could be e.x. https://www.google.com/path, http://www.google.com, www.google.com

Is there are standard rails way to 1) validate that input is a valid url format and 2) convert that third format to http://www.google.com in my views so the external link works?

I don't want to re-invent the wheel if I can avoid it.

like image 723
spike Avatar asked Feb 03 '26 15:02

spike


1 Answers

Check this out:

validates_format_of :website, :with => URI::regexp(%w(http https))  

Source: http://intridea.com/2009/2/18/quick-tip-url-validation-in-rails?blog=company

To format a URL that is missing the protocol (http or https), I would do a before_save hook that prepends it if it's missing:

before_save :format_url

...

def format_url
  self.website = "http://#{self.website}" unless self.website[/^https?/]    
end
like image 130
twmills Avatar answered Feb 05 '26 07:02

twmills