spike
spike

Reputation: 10004

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.

Upvotes: 3

Views: 1724

Answers (2)

Andy Waite
Andy Waite

Reputation: 11076

The Domainatrix gem comes highly recommended for validating URLs:

https://github.com/pauldix/domainatrix

Upvotes: 1

twmills
twmills

Reputation: 3015

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

Upvotes: 9

Related Questions