Sha256: 773a8c937c0cd249ed71626172c5750a750393d9c5176f296084570491d56b24

Contents?: true

Size: 1.35 KB

Versions: 2

Compression:

Stored size: 1.35 KB

Contents

= dm-validations-ext

DataMapper plugin providing access to validation errors of associated parent and children objects. See the example below to get an idea on how it works.

= Example

  DataMapper.setup :default, "sqlite::memory"

  class User
    include DataMapper::Resource

    property :id, Serial
    property :name, String

    belongs_to :group
    has n, :roles
  end

  class Group
    include DataMapper::Resource

    property :id, Serial
    property :name, String, :length => 10..255

    has n, :users
  end

  class Role
    include DataMapper::Resource

    property :id, Serial
    property :name, String, :length => 4..10

    belongs_to :user
  end

  DataMapper.finalize
  DataMapper.auto_migrate!

  user  = User.new(:name => "John")
  group = Group.new(:name => "Too Short")
  role  = Role.new(:name => "Way Too Long")

  user.group = group
  user.roles << role

  user.save
  # => false

  user.errors[:group].inspect
  # => <DataMapper::Validations::ValidationErrors:0xa098a30 @resource=#<Group @id=nil @name="Too Short">, @errors={:name=>["Name must be between 10 and 255 characters long"]}>

  user.errors[:roles].inspect
  # => [#<DataMapper::Validations::ValidationErrors:0xa0931ac @resource=#<Role @id=nil @name="Way Too Long" @user_id=nil>, @errors={:name=>["Name must be between 4 and 10 characters long"], :user_id=>["User must not be blank"]}>]

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dm-validations-ext-0.0.2 README.rdoc
dm-validations-ext-0.0.1 README.rdoc