Module: ActiveResource::Validations

Module | ActiveResource::Validations
In: | lib/active_resource/validations.rb

Module to allow validation of ActiveResource objects, which creates an Errors instance for every resource. Methods are implemented by overriding +Base#validate+ or its variants Each of these methods can inspect the state of the object, which usually means ensuring that a number of attributes have a certain value (such as not empty, within a given range, matching a certain regular expression and so on).

#### Example

      class Person < ActiveResource::Base
         self.site = "http://www.localhost.com:3000/"
         protected
           def validate
             errors.add_on_empty %w( first_name last_name )
             errors.add("phone_number", "has invalid format") unless phone_number =~ /[0-9]*/
           end

           def validate_on_create # is only run the first time a new object is saved
             unless valid_member?(self)
               errors.add("membership_discount", "has expired")
             end
           end

           def validate_on_update
             errors.add_to_base("No changes have occurred") if unchanged_attributes?
           end
      end

      person = Person.new("first_name" => "Jim", "phone_number" => "I will not tell you.")
      person.save                         # => false (and doesn't do the save)
      person.errors.empty?                # => false
      person.errors.count                 # => 2
      person.errors.on "last_name"        # => "can't be empty"
      person.attributes = { "last_name" => "Halpert", "phone_number" => "555-5555" }
      person.save                         # => true (and person is now saved to the remote service)

### Methods

errors save_with_validation valid?

### Public Instance methods

errors()

Returns the Errors object that holds all information about attribute error messages.

save_with_validation()

Validate a resource and save (POST) it to the remote web service.

valid?()

Checks for errors on an object (i.e., is resource.errors empty?).

#### Examples

      my_person = Person.create(params[:person])
      my_person.valid?
      # => true

      my_person.errors.add('login', 'can not be empty') if my_person.login == ''
      my_person.valid?
      # => false

[Validate]