aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib/active_model/errors.rb
diff options
context:
space:
mode:
authorJames Hill <jamie@jamie-laptop.local>2009-08-05 11:44:44 -0500
committerJoshua Peek <josh@joshpeek.com>2009-08-05 11:45:01 -0500
commitcfd421daa2b04216e27d666361eb4053020e027d (patch)
tree878e4980a47433990e96c2edb8b28ee5b1ae22f1 /activemodel/lib/active_model/errors.rb
parent64268a0b06d32567c6e88b7293f332b79e10414b (diff)
downloadrails-cfd421daa2b04216e27d666361eb4053020e027d.tar.gz
rails-cfd421daa2b04216e27d666361eb4053020e027d.tar.bz2
rails-cfd421daa2b04216e27d666361eb4053020e027d.zip
Allow validations to use values from custom readers [#2936 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
Diffstat (limited to 'activemodel/lib/active_model/errors.rb')
-rw-r--r--activemodel/lib/active_model/errors.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/activemodel/lib/active_model/errors.rb b/activemodel/lib/active_model/errors.rb
index a4cf700231..a47d89ac0e 100644
--- a/activemodel/lib/active_model/errors.rb
+++ b/activemodel/lib/active_model/errors.rb
@@ -68,7 +68,7 @@ module ActiveModel
# Will add an error message to each of the attributes in +attributes+ that is empty.
def add_on_empty(attributes, custom_message = nil)
[attributes].flatten.each do |attribute|
- value = @base.send(attribute)
+ value = @base.instance_eval { read_attribute_for_validation(attribute) }
is_empty = value.respond_to?(:empty?) ? value.empty? : false
add(attribute, :empty, :default => custom_message) unless !value.nil? && !is_empty
end
@@ -77,7 +77,7 @@ module ActiveModel
# Will add an error message to each of the attributes in +attributes+ that is blank (using Object#blank?).
def add_on_blank(attributes, custom_message = nil)
[attributes].flatten.each do |attribute|
- value = @base.send(attribute)
+ value = @base.instance_eval { read_attribute_for_validation(attribute) }
add(attribute, :blank, :default => custom_message) if value.blank?
end
end
@@ -146,7 +146,7 @@ module ActiveModel
defaults = defaults.compact.flatten << :"messages.#{message}"
key = defaults.shift
- value = @base.send(attribute)
+ value = @base.instance_eval { read_attribute_for_validation(attribute) }
options = { :default => defaults,
:model => @base.class.name.humanize,