Home > dm-validations-ext

dm-validations-ext

Dm-validations-ext is a project mainly written in Ruby, based on the MIT license.

Various additions to the dm-validations API

= 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"]}>]

Previous:sample_app