aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/validations.rb
diff options
context:
space:
mode:
authorIain Hecker <github@iain.nl>2008-08-16 21:45:23 +0200
committerSven Fuchs <svenfuchs@artweb-design.de>2008-08-20 17:57:53 +0200
commitfc0358ae16d5631dd1d996b2cf95a8987f9d0c8d (patch)
treec022a5462e8f24ee5e9d0ee9a962c50049dae61a /activerecord/lib/active_record/validations.rb
parente43cdb93f08544304c10198211d17868f0881030 (diff)
downloadrails-fc0358ae16d5631dd1d996b2cf95a8987f9d0c8d.tar.gz
rails-fc0358ae16d5631dd1d996b2cf95a8987f9d0c8d.tar.bz2
rails-fc0358ae16d5631dd1d996b2cf95a8987f9d0c8d.zip
Added :value as interpolation variable available to error messages
Diffstat (limited to 'activerecord/lib/active_record/validations.rb')
-rw-r--r--activerecord/lib/active_record/validations.rb18
1 files changed, 10 insertions, 8 deletions
diff --git a/activerecord/lib/active_record/validations.rb b/activerecord/lib/active_record/validations.rb
index 040681a09c..a442d008a9 100644
--- a/activerecord/lib/active_record/validations.rb
+++ b/activerecord/lib/active_record/validations.rb
@@ -92,17 +92,19 @@ module ActiveRecord
:"custom.#{klass.name.underscore}.#{message}" ]
end
- defaults << options[:default] if options[:default]
- defaults.flatten! << message
+ defaults << options.delete(:default)
+ defaults = defaults.compact.flatten << message
model_name = @base.class.name
key = defaults.shift
-
- options.merge!({
- :default => defaults,
- :model => @base.class.human_name,
- :attribute => @base.class.human_attribute_name(attribute.to_s),
- :scope => [:activerecord, :errors, :messages] })
+ value = @base.send(attribute) if @base.respond_to?(attribute)
+
+ options = { :default => defaults,
+ :model => @base.class.human_name,
+ :attribute => @base.class.human_attribute_name(attribute.to_s),
+ :value => value,
+ :scope => [:activerecord, :errors, :messages]
+ }.merge(options)
I18n.translate(key, options)
end