summaryrefslogtreecommitdiff
path: root/app/helpers/form_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers/form_helper.rb')
-rw-r--r--app/helpers/form_helper.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/app/helpers/form_helper.rb b/app/helpers/form_helper.rb
index 963f0b7afc4..8f0d01c7d6d 100644
--- a/app/helpers/form_helper.rb
+++ b/app/helpers/form_helper.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
module FormHelper
- def form_errors(model, type: 'form', truncate: [])
+ def form_errors(model, type: 'form', truncate: [], custom_message: [])
errors = model.errors
return unless errors.any?
@@ -16,9 +16,15 @@ module FormHelper
messages = errors.map do |error|
attribute = error.attribute
- message = error.message
- message = html_escape_once(errors.full_message(attribute, message)).html_safe
+ message = errors.full_message(attribute, error.message)
+
+ # When error message is custom and does not follow the default pattern
+ # "<attribute name> <error message>" (e.g. "You have already reported this
+ # user"), use the message as-is
+ message = error.message if custom_message.include?(attribute)
+
+ message = html_escape_once(message).html_safe
message = tag.span(message, class: 'str-truncated-100') if truncate.include?(attribute)
message = append_help_page_link(message, error.options) if error.options[:help_page_url].present?