Collection of useful custom validators for Rails applications, including:
- AbsolutePathValidator
- AssociationLengthValidator
- ColorValidator
- EanValidator (EAN-8 & EAN-13)
- EmailValidator
- IpValidator
- MoneyValidator
- SlugValidator
- UriComponentValidator
- UrlValidator
Note InnValidator and other Russian specific validators could be found at validates_russian gem
Add this line to your application's Gemfile:
gem'validates'Or install it yourself as:
$ gem install 'validates'For most of the validators you just want to add this line to your model:
validates:attribute, <validator_underscore>: truewhere <validator_underscore> is an underscored, lowercase form from the validator's name (see the examples section below).
Because this is the successor of ActiveModel::Validations::LengthValidator
validator, it inherits all the options of the latter, such as :is, :minimum,
:maximum, etc. Another option, which you may be interested in is :select option,
which allows you to filter the collection of the associated objects.
classUser < ActiveRecord::Basevalidates:email,:email=>truevalidates:site,:url=>true,:allow_blank=>trueendclassCompany < ActiveRecord::Base# note AssociationLengthValidator is inherited from ActiveModel::Validations::LengthValidator# http://api.rubyonrails.org/classes/ActiveModel/Validations/LengthValidator.html# so you can easily use standard options like :is, :minimum, :maximum, etc.validates:employees,:association_length=>{:minimum=>1,:select=>->(employee){employee.name.in?["Mike","John"]}}validates:employees,:association_length=>{:minimum=>1,:select=>:employees_filter}defemployees_filter(employees)employees.select{ |employee| employee.name.in?["Mike","John"]}endendclassPage < ActiveRecord::Basevalidates:slug,:slug=>trueendclassContent < ActiveRecord::Base# Validates URI component.# URI component must be of the following type:# :ABS_URI, :REL_URI, :URI_REF, :ABS_URI_REF, :REL_URI_REF, :ESCAPED, :UNSAFE, :SCHEME,# :USERINFO, :HOST, :PORT, :OPAQUE, :REGISTRY, :ABS_PATH, :REL_PATH, :QUERY or :FRAGMENT.# These types are provided URI library. For more info see URI::DEFAULT_PARSER.regexp.validates:path,:uri_component=>{:component=>:ABS_PATH}endPlease see CONTRIBUTING.md for details.
Originally written by Mikhail Stolbov. Maintained by kaize.
Thank you to all our amazing contributors!
validates is Copyright © 2012-2014 Mikhail Stolbov and kaize. It is free software, and may be redistributed under the terms specified in the LICENSE file.


