aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/plugins/custom_err_msg/lib
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/plugins/custom_err_msg/lib')
-rw-r--r--vendor/plugins/custom_err_msg/lib/custom_error_message.rb29
1 files changed, 29 insertions, 0 deletions
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