-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Block for conditional field is always called #49
Comments
@ezekg You are right – at the moment links are built eagerly (only the related objects are constructed lazily). However, a simple fix for your use-case (that would be in-line with the spirit of the spec) would be to expose the related user via some nested route (like Regarding the former, I am currently refactoring that part to avoid eagerly building stuff, so it should be fixed for the next release. |
@ezekg See json-api/json-api#1134 and related issues for an overview of why exposing the related link as |
As much as I'd like to implement that, at the moment it brings in too much overhead into developing the API. I'd need to create new routes/controllers for each relationship, and write tests for them. Appreciate the guidance though. I'm going to create a ticket as a reminder to come back to this. |
@ezekg Would you mind writing a regression test for this? |
Definitely. I'll try and do that this weekend. |
Out of curiosity, does the library currently support specifying any conditional rendering of attributes in the serializer via the exposed instance variables? For example:
This requested feature was the closest I could find to this and just wanted to see if I was missing anything obvious that already existed in the library. |
@dylanlewis89 Yes it does, you just have to call |
@dylanlewis89 Sorry, I obviously meant |
Thanks @beauby for the quick and helpful response! For anyone tackling this issue in the future, the 0.2.1 release introduces the |
Hey, I just updated my API to use the latest version of jsonapi-rb/rails so I can dig into fixing this now! I was trying to hold off until I could get around to updating, as I was still on v0.1.1. 🙂 |
Example
Expected outcome
The relationship block is not called when the conditional fails.
Actual outcome
The relationship block is called regardless of the conditional failing; only the display of the serialized relationship is changed. This requires additional checks within the block, which makes the code less readable (especially for nested resource routes) and duplicates the condition:
Solution
Do not call the block if the condition fails.
Would you be open to a pull request?
The text was updated successfully, but these errors were encountered: