stas/jsonapi.rb

Error message have a blank value in the pointer field for model attributes with a underscore

bsylvain opened this issue · 3 comments

Expected Behavior

When there is a validation error to return a json error with pointer filed for attributes with an underscore

Actual Behavior

The JSON:API error message has a blank pointer value in the error payload when the attribute contain a underscore

Steps to Reproduce the Problem

Create a model with a field that contain a underscore. Set the serializer to set_key_transform :dash
Send an update or a create that violate a validation on the field of the underscore
The json error pointer value is empty

Specifications

  • Version: 1.6
  • Ruby version: 2.5

Ok so I found a way to monkeypatch my problem. I replaced this line :

attrs = (model_serializer.attributes_to_serialize || {}).keys

with this :
attrs = (model_serializer.attributes_to_serialize || {}).keys.map{|k| k.to_s.underscore.to_sym}

It's ugly, but it's the only way i found to respect JSONAPI and still get errors for field with _ in it.

This isn't fixed in v2.0.0, looks like v1.8 never happened?

I'm running into the same issue

stas commented

We had to skip over v1.8 because of the breaking changes. Btw, there's #58, nobody weighted on the changes there so it probably got lost.

We can have a small release with this one. @storm-factory did #58 solve your problem?