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.
This simple plugin allows you to enter either “http://www.example.com” or just “www.example.com” and in either case it will store “http://www.example.com”
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
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"
Easy!
./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