module CollectionErrors::Separate

Public Class Methods

included(base) click to toggle source
# File lib/collection_errors/separate.rb, line 3
def self.included(base)
  base.extend(ClassMethods)
end

Private Instance Methods

generate_error_message_for_collection_element(collection_name, index, message) click to toggle source
# File lib/collection_errors/separate.rb, line 8
def generate_error_message_for_collection_element(collection_name, index, message)
  type = :collection_error
  defaults = self.class.lookup_ancestors.map do |klass|
    [ :"#{self.class.i18n_scope}.errors.models.#{klass.model_name.i18n_key}.attributes.#{collection_name}.#{type}",
      :"#{self.class.i18n_scope}.errors.models.#{klass.model_name.i18n_key}.#{type}" ]
  end
  defaults << :"#{self.class.i18n_scope}.errors.messages.#{type}"
  defaults << :"errors.attributes.#{collection_name}.#{type}"
  defaults << :"errors.messages.#{type}"
  defaults << "%{collection_name}%{index} %{original_message}"

  defaults.compact!
  defaults.flatten!

  I18n.translate(defaults.shift, :collection_name => self.class.human_attribute_name(collection_name), :index => index, :original_message => message, :default => defaults)
end