Sometimes you want to accept a URL field on one of your models. Take for example a Company model with a website field. You want the URL to always have “http://” but sometimes users enter http://, sometimes they dont.
Your app shouldn’t care. Enter the URL field plugin.
class Company < ActiveRecord::Base url_field :website end @company = Company.new @company.website = "www.example.com" @company.save @company.website # => "http://www.example.com"
Https? That works too (but one way only)
@company.website = "https://www.example.com" @company.save @company.website # => "https://www.example.com"
If you have multiple url_fields in a single model, just pass them as arguments to the url_field method, eg:
class Company < ActiveRecord::Base url_field :website, :support_website, :more_info_website end
Access the correctly formed URL at any time
If you want access to the correctly formatted URL at any time (for example if you’re passing it to URI.parse, before you save your model), you can prefix your URL field method name with “cleaned_” eg. “cleaned_website” if your field name was website:
class Company < ActiveRecord::Base url_field :website end @company = Company.new @company.website = "www.example.com" @company.cleaned_website # => "http://www.example.com"
./script plugin install git://github.com/paulca/url_field.git
I’m Paul Campbell. I’m an avid Ruby on Rails web developer. Follow my ramblings at http://www.pabcas.com
Follow me on Twitter http://twitter.com/paulca
Copyright © 2009 Paul Campbell, released under the MIT license