diff --git a/lib/jsonapi/active_model_error_serializer.rb b/lib/jsonapi/active_model_error_serializer.rb index 59a3e3c..4676342 100644 --- a/lib/jsonapi/active_model_error_serializer.rb +++ b/lib/jsonapi/active_model_error_serializer.rb @@ -1,8 +1,14 @@ require 'jsonapi/error_serializer' +require 'jsonapi/deserialization' module JSONAPI # [ActiveModel::Errors] serializer class ActiveModelErrorSerializer < ErrorSerializer + extend ::JSONAPI::Deserialization + + # Cleanups to DRY things... + singleton_class.undef_method :jsonapi_deserialize + attribute :status do '422' end @@ -45,6 +51,11 @@ class ActiveModelErrorSerializer < ErrorSerializer attrs = (model_serializer.attributes_to_serialize || {}).keys rels = (model_serializer.relationships_to_serialize || {}).keys + # Revert back to underscore any serializer transformation... + [attrs, rels].each do |skeys| + skeys.map! { |skey| jsonapi_inflector.underscore(skey) } + end + if attrs.include?(error_key) { pointer: "/data/attributes/#{error_key}" } elsif rels.include?(error_key)