No commit activity in last 3 years
No release in over 3 years
DataMapper plugin providing better error messages handling.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 2.0.1
~> 0.8.7
~> 1.4

Runtime

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