From 3c1a4bae631663f7660f947c59d898f076f6e0b8 Mon Sep 17 00:00:00 2001 From: francis Date: Wed, 7 Nov 2007 08:29:30 +0000 Subject: Original version of custom error messgae plugin --- .../custom_err_msg/lib/custom_error_message.rb | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 vendor/plugins/custom_err_msg/lib/custom_error_message.rb (limited to 'vendor/plugins/custom_err_msg/lib') diff --git a/vendor/plugins/custom_err_msg/lib/custom_error_message.rb b/vendor/plugins/custom_err_msg/lib/custom_error_message.rb new file mode 100644 index 000000000..4dcc459c9 --- /dev/null +++ b/vendor/plugins/custom_err_msg/lib/custom_error_message.rb @@ -0,0 +1,29 @@ +module ActiveRecord + class Errors + + # Redefine the ActiveRecord::Errors::full_messages method: + # Returns all the full error messages in an array. 'Base' messages are handled as usual. + # Non-base messages are prefixed with the attribute name as usual UNLESS they begin with '^' + # in which case the attribute name is omitted. + # E.g. validates_acceptance_of :accepted_terms, :message => '^Please accept the terms of service' + def full_messages + full_messages = [] + + @errors.each_key do |attr| + @errors[attr].each do |msg| + next if msg.nil? + + if attr == "base" + full_messages << msg + elsif msg =~ /^\^/ + full_messages << msg[1..-1] + else + full_messages << @base.class.human_attribute_name(attr) + " " + msg + end + end + end + + return full_messages + end + end +end -- cgit v1.2.3