Module | DataMapper::Validations::ValidatesWithMethod |
In: |
lib/dm-validations/validators/method_validator.rb
|
Validate using method called on validated object. The method must to return either true, or a pair of [false, error message string], and is specified as a symbol passed with :method option.
This validator does support multiple fields being specified at a time, but we encourage you to use it with one property/method at a time.
Real world experience shows that method validation is often useful when attribute needs to be virtual and not a property name.
@example Usage
require 'dm-validations' class Page include DataMapper::Resource property :zip_code, String validates_with_method :zip_code, :method => :in_the_right_location? def in_the_right_location? if @zip_code == "94301" return true else return [false, "You're in the wrong zip code"] end end # A call to valid? will return false and # populate the object's errors with "You're in the # wrong zip code" unless zip_code == "94301" end