Module: Formtastic::Helpers::ErrorsHelper
- Includes:
- FileColumnDetection, Reflection, LocalizedString
- Included in:
- FormBuilder
- Defined in:
- lib/formtastic/helpers/errors_helper.rb
Constant Summary collapse
- INLINE_ERROR_TYPES =
[:sentence, :list, :first]
Instance Method Summary collapse
-
#inline_errors_for(method, options = {}) ⇒ Object
(also: #errors_on)
deprecated
Deprecated.
See the README for the currently supported approach to custom inputs.
-
#semantic_errors(*args) ⇒ Object
Generates an unordered list of error messages on the base object and optionally for a given set of named attribute.
Methods included from Reflection
Methods included from FileColumnDetection
Instance Method Details
#inline_errors_for(method, options = {}) ⇒ Object Also known as: errors_on
See the README for the currently supported approach to custom inputs.
Generates error messages for the given method, used for displaying errors right near the field for data entry. Uses the ‘:inline_errors` config to determin the right presentation, which may be an ordered list, a paragraph sentence containing all errors, or a paragraph containing just the first error. If configred to `:none`, no error is shown.
See the ‘:inline_errors` config documentation for more details.
This method is mostly used internally, but can be used in your forms when creating your own custom inputs, so it’s been made public and aliased to ‘errors_on`.
78 79 80 81 82 83 84 85 86 |
# File 'lib/formtastic/helpers/errors_helper.rb', line 78 def inline_errors_for(method, = {}) ActiveSupport::Deprecation.warn('inline_errors_for and errors_on are deprecated and will be removed on or after version 2.1', caller) if render_inline_errors? errors = error_keys(method, ).map{|x| @object.errors[x] }.flatten.compact.uniq send(:"error_#{inline_errors}", [*errors], ) if errors.any? else nil end end |
#semantic_errors(*args) ⇒ Object
Generates an unordered list of error messages on the base object and optionally for a given set of named attribute. This is idea for rendering a block of error messages at the top of the form for hidden/special/virtual attributes (the Paperclip Rails plugin does this), or errors on the base model.
A hash can be used as the last set of arguments to pass HTML attributes to the ‘<ul>` wrapper.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/formtastic/helpers/errors_helper.rb', line 41 def semantic_errors(*args) = args. full_errors = args.inject([]) do |array, method| attribute = localized_string(method, method.to_sym, :label) || humanized_attribute_name(method) errors = Array(@object.errors[method.to_sym]).to_sentence errors.present? ? array << [attribute, errors].join(" ") : array ||= [] end full_errors << @object.errors[:base] full_errors.flatten! full_errors.compact! return nil if full_errors.blank? [:class] ||= "errors" template.content_tag(:ul, ) do Formtastic::Util.html_safe(full_errors.map { |error| template.content_tag(:li, Formtastic::Util.html_safe(error)) }.join) end end |