Custom Error Message
This plugin gives you the option to not have your custom validation error message prefixed with the attribute name. Ordinarily, if you have, say:
validates_acceptance_of :accepted_terms, :message => 'Please accept the terms of service'
You’ll get the following error message:
Accepted terms Please accept the terms of service
This plugin allows you to omit the attribute name for specific messages. All you have to do is begin the message with a ‘^’ character. Example:
validates_acceptance_of :accepted_terms, :message => '^Please accept the terms of service'
Nigel Ramsay added the ability to specify a proc to generate the message.
validates_presence_of :assessment_answer_option_id,
:message => Proc.new { |aa| "#{aa.label} (#{aa.group_label}) is required" }
which gives an error message like: Rate (Accuracy) is required
Detail
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
(1) 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'
(2) the message is a proc, in which case the proc is invoked on the model object.
E.g. validates_presence_of :assessment_answer_option_id,
:message => Proc.new { |aa| "#{aa.label} (#{aa.group_label}) is required" }
which gives an error message like:
Rate (Accuracy) is required
Download
rubyforge.org/projects/custom-error-message/
Bugs & feedback
Please send bug reports, patches and feedback to David Easley at [email protected]