@@ -294,9 +294,10 @@ def errors
294294 end
295295
296296 class ValidationErrors < Error
297- attr_accessor :messages , :resource_associations
297+ attr_reader :error_messages , :resource_associations
298+
298299 def initialize ( resource )
299- @messages = resource . model . errors . messages
300+ @error_messages = resource . model . errors . messages
300301 @resource_associations = resource . class . _associations . keys
301302 @key_formatter = JSONAPI . configuration . key_formatter
302303 end
@@ -306,21 +307,21 @@ def format_key(key)
306307 end
307308
308309 def errors
309- messages . inject ( [ ] ) do |arr , element |
310- arr . concat (
311- element [ 1 ] . map do |message |
312- JSONAPI ::Error . new ( code : JSONAPI ::VALIDATION_ERROR ,
313- status : :unprocessable_entity ,
314- title : "#{ format_key ( element [ 0 ] ) } - #{ message } " ,
315- detail : message ,
316- source : { pointer : pointer ( element [ 0 ] ) } )
317- end
318- )
319- end
310+ error_messages . map do |attr_key , messages |
311+ messages . map { |message | json_api_error ( attr_key , message ) }
312+ end . flatten
320313 end
321314
322315 private
323316
317+ def json_api_error ( attr_key , message )
318+ JSONAPI ::Error . new ( code : JSONAPI ::VALIDATION_ERROR ,
319+ status : :unprocessable_entity ,
320+ title : "#{ format_key ( attr_key ) } - #{ message } " ,
321+ detail : message ,
322+ source : { pointer : pointer ( attr_key ) } )
323+ end
324+
324325 def pointer ( attr_or_association_name )
325326 if resource_associations . include? ( attr_or_association_name )
326327 "/data/relationships/#{ attr_or_association_name } "
0 commit comments