From fcc534ed76a7ef50bf7887378ce6c68d5ace336c Mon Sep 17 00:00:00 2001 From: Brian Cardarella Date: Mon, 23 Apr 2012 17:16:05 -0400 Subject: confirmation validation error attribute This will render the error message on :#{attribute}_confirmation instead of on attribute itself. When rendering confirmation errors inline on the form with form builders such as SimpleForm and Formtastic it is confusing to the ender user to see the confirmation error message on the attribute element. Instead it makes more sense to have this validation error render on the confirmation field instead. The i18n message has been updated for the confirmation validator error message to include the original attribute name. --- activemodel/lib/active_model/validations/confirmation.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activemodel/lib/active_model/validations') diff --git a/activemodel/lib/active_model/validations/confirmation.rb b/activemodel/lib/active_model/validations/confirmation.rb index e8526303e2..011d1171b5 100644 --- a/activemodel/lib/active_model/validations/confirmation.rb +++ b/activemodel/lib/active_model/validations/confirmation.rb @@ -5,7 +5,7 @@ module ActiveModel class ConfirmationValidator < EachValidator def validate_each(record, attribute, value) if (confirmed = record.send("#{attribute}_confirmation")) && (value != confirmed) - record.errors.add(attribute, :confirmation, options) + record.errors.add(:"#{attribute}_confirmation", :confirmation, options.merge(:attribute => attribute)) end end -- cgit v1.2.3 From 4433b1a99afa904884927d6787a1baf162b14f2e Mon Sep 17 00:00:00 2001 From: Brian Cardarella Date: Tue, 24 Apr 2012 01:05:41 -0400 Subject: Support i18n attributes for confirmation --- activemodel/lib/active_model/validations/confirmation.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'activemodel/lib/active_model/validations') diff --git a/activemodel/lib/active_model/validations/confirmation.rb b/activemodel/lib/active_model/validations/confirmation.rb index 011d1171b5..69ab74734d 100644 --- a/activemodel/lib/active_model/validations/confirmation.rb +++ b/activemodel/lib/active_model/validations/confirmation.rb @@ -5,7 +5,8 @@ module ActiveModel class ConfirmationValidator < EachValidator def validate_each(record, attribute, value) if (confirmed = record.send("#{attribute}_confirmation")) && (value != confirmed) - record.errors.add(:"#{attribute}_confirmation", :confirmation, options.merge(:attribute => attribute)) + human_attribute_name = record.class.human_attribute_name(attribute) + record.errors.add(:"#{attribute}_confirmation", :confirmation, options.merge(:attribute => human_attribute_name)) end end -- cgit v1.2.3