An open API service indexing awesome lists of open source software.

https://github.com/solnic/dm-validations-ext

Various additions to the dm-validations API
https://github.com/solnic/dm-validations-ext

Last synced: 27 days ago
JSON representation

Various additions to the dm-validations API

Awesome Lists containing this project

README

        

= 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
# => , @errors={:name=>["Name must be between 10 and 255 characters long"]}>

user.errors[:roles].inspect
# => [#, @errors={:name=>["Name must be between 4 and 10 characters long"], :user_id=>["User must not be blank"]}>]