class Erratum::Errors::ResourceNotUnique
Attributes
attribute[RW]
pointer[RW]
value[RW]
Public Class Methods
convert(original_error, overrides = {})
click to toggle source
# File lib/erratum/errors/crud/resource_not_unique.rb, line 19 def self.convert(original_error, overrides = {}) case original_error.class.name when 'ActiveRecord::RecordNotUnique' message_info_pattern = /DETAIL: Key \((.+)\)=\((.+)\) already exists\./ message_info = original_error .message .match(message_info_pattern) .captures initialization_parameters = { attribute: message_info[0], pointer: "/data/attributes/#{message_info[0]}", value: message_info[1], } new(initialization_parameters.merge(overrides)) end end
Public Instance Methods
detail()
click to toggle source
# File lib/erratum/errors/crud/resource_not_unique.rb, line 46 def detail @detail || <<~HEREDOC.chomp.tr("\n", ' ') #{attribute.to_s.humanize} has already been used. HEREDOC end
http_status()
click to toggle source
# File lib/erratum/errors/crud/resource_not_unique.rb, line 38 def http_status 422 end
source()
click to toggle source
Calls superclass method
Erratum::Errors::Crud#source
# File lib/erratum/errors/crud/resource_not_unique.rb, line 52 def source super.merge( 'pointer' => pointer, 'parameter' => attribute, 'value' => value, ) end
title()
click to toggle source
# File lib/erratum/errors/crud/resource_not_unique.rb, line 42 def title 'Resource Not Unique' end