class Aform::Errors

Public Class Methods

new(form) click to toggle source
# File lib/aform/errors.rb, line 3
def initialize(form)
  @form = form
end

Public Instance Methods

messages() click to toggle source
# File lib/aform/errors.rb, line 7
def messages
  @form.form_model.errors.messages.merge(nested_messages(@form))
end

Private Instance Methods

nested_messages(form) click to toggle source
# File lib/aform/errors.rb, line 13
def nested_messages(form)
  if nf = form.nested_forms
    nf.inject({}) do |memo, (k,v)|
      messages = v.each_with_index.inject({}) do |m, (e, i)|
        errors = e.form_model.errors.messages.merge(nested_messages(e))
        errors.present? ? m.merge(i => errors) : m
      end
      memo.merge(k => messages)
    end
  else
    {}
  end
end