| Module | ActionView::Helpers::ActiveRecordHelper |
| In: |
brtraducao/lib/brtraducao/action_view_portuguese.rb
|
Traduz as mensagens de erro do ActiveRecord
# File brtraducao/lib/brtraducao/action_view_portuguese.rb, line 3
3: def error_messages_for(*params)
4: options = params.last.is_a?(Hash) ? params.pop.symbolize_keys : {}
5: objects = params.collect { |object_name| instance_variable_get('@'+object_name.to_s()) }
6: objects.compact!
7: count = objects.inject(0) {|sum, object| sum + object.errors.count }
8: unless count.zero?
9: html = {}
10: [:id, :class].each do |key|
11: if options.include?(key)
12: value = options[key]
13: html[key] = value unless value.blank?
14: else
15: html[key] = 'errorExplanation'
16: end
17: end
18: header_message = "#{pluralize(count, 'erro')} para #{(options[:object_name] || params.first).to_s.gsub('_', ' ')}"
19: error_messages = objects.map { |object| object.errors.full_messages.map {|msg| content_tag(:li, msg) } }
20: content_tag(:div,
21: content_tag(options[:header_tag] || :h2, header_message) <<
22: content_tag(:p, 'Foram detectados os seguintes erros:') <<
23: content_tag(:ul, error_messages),
24: html
25: )
26: else
27: ''
28: end
29: end