Module: ActionView::Helpers::ActiveRecordHelper

Defined in:
lib/brtraducao/action_view_portuguese.rb

Instance Method Summary collapse

Instance Method Details

#error_messages_for(*params) ⇒ Object

Traduz as mensagens de erro do ActiveRecord



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/brtraducao/action_view_portuguese.rb', line 3

def error_messages_for(*params)
  options = params.last.is_a?(Hash) ? params.pop.symbolize_keys : {}
  objects = params.collect { |object_name| instance_variable_get('@'+object_name.to_s()) }
  objects.compact!
  count   = objects.inject(0) {|sum, object| sum + object.errors.count }
  unless count.zero?
    html = {}
    [:id, :class].each do |key|
      if options.include?(key)
        value = options[key]
        html[key] = value unless value.blank?
      else
        html[key] = 'errorExplanation'
      end
    end
    options[:header_message] ||= "#{pluralize(count, 'erro')} para #{(options[:object_name] || params.first).to_s.gsub('_', ' ')}"
    error_messages = objects.map { |object| object.errors.full_messages.map {|msg| (:li, msg) } }
    (:div,
      (options[:header_tag] || :h2, options[:header_message]) <<
        (:p, 'Foram detectados os seguintes erros:') <<
        (:ul, error_messages),
      html
    )
  else
    ''
  end
end