class ViewModel::DeserializationError::Validation

Attributes

attribute[R]
details[R]
reason[R]

Public Class Methods

from_active_model(errors, node) click to toggle source

Return Validation errors for each error in the the provided ActiveModel::Errors, wrapped in a Collection if necessary.

# File lib/view_model/deserialization_error.rb, line 461
def self.from_active_model(errors, node)
  causes = errors.messages.each_key.flat_map do |attr|
    errors.messages[attr].zip(errors.details[attr]).map do |message, details|
      self.new(attr.to_s, message, details, node)
    end
  end
  Collection.for_errors(causes)
end
new(attribute, reason, details, node) click to toggle source
Calls superclass method ViewModel::AbstractErrorWithBlame::new
# File lib/view_model/deserialization_error.rb, line 444
def initialize(attribute, reason, details, node)
  @attribute = attribute
  @reason    = reason
  @details   = details
  super([node])
end

Public Instance Methods

detail() click to toggle source
# File lib/view_model/deserialization_error.rb, line 451
def detail
  "Validation failed: '#{attribute}' #{reason}"
end
meta() click to toggle source
Calls superclass method ViewModel::AbstractErrorWithBlame#meta
# File lib/view_model/deserialization_error.rb, line 455
def meta
  super.merge(attribute: attribute, message: reason, details: details)
end