forked from jhulick/ch-sheets
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ruby.datamapper.validations.sheet
49 lines (37 loc) · 1.29 KB
/
ruby.datamapper.validations.sheet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# DataMapper Validations
require 'dm-validations'
# Implicit validates_present
:nullable => false
# Implicit validates_length
:length => 20
:length => 5..20
:length => 0..20
# Implicit validates_format
:format => ...
validates_is_unique :email
validates_present :name, :email
validates_length :name, :min => 5, :max => 32
validates_format :email, :format => :email_address, :message => 'Your email sucks!'
validates_format :name, :format => /\A\w+\Z/
validates_format :name, :format => lambda { |name| ... }
validates_format :name, :format => Proc.new { |name| ... }
validates_is_confirmed :password, :on => :register
validates_is_confirmed :password, :on => [:default, :register]
validates_with_method :check_password
validates_with_method :password, :method => :check_password
validates_present :signature, :if => lambda { |user| user.is_a_forum_member? }
validates_length :change_summary, :min => 10, :unless => :new?
# Error usage
post = Post.new(:name => 'Something')
if post.save
# do something
else
p post.errors
p post.errors.on(:name)
end
# Contexts
post.save(:register)
post.valid?(:register)
post.valid_for_register?
# Manually adding errors
post.errors.add(:name, 'Your name sucks')