Comments (5)
I was just starting to look at this. What was the resolution?
from jsonapi-resources.
I reworked something on my end so it didn't matter anymore. I didn't want to create more work if no one else was complaining.
from jsonapi-resources.
Ok, thanks. I'll still take a look at it then.
from jsonapi-resources.
Were you seeing the normal Rails behavior of not validating the existence of a related object? If so, there are a few ways you can fix that. The first is using a validation gem such as https://github.com/perfectline/validates_existence, which I have not tested. Another way would be to put foreign key constraints on the database and handle the error when the resource is saved. And finally you could override the verify_key
method on your resource
(or base_resource). For example:
def verify_key(key, context = nil)
#try to load a resource to make sure it exists. Will raise a JSONAPI::Exceptions::RecordNotFound if the resource is not found
find_by_key(key, context: context)
return key
end
I personally like overriding the verify_key
method, however if you use your models outside of jsonapi-resources
one of the other approaches might be better. I'm also a firm believer in foreign keys as an additional safety measure.
One final note, using the verify_key
method can also provide a way to check if the current user has permission to see the related record since the context can be taken into account during the find_by_key
method.
from jsonapi-resources.
Okay. Thanks very much! I added the database constraint.
from jsonapi-resources.
Related Issues (20)
- Resource option `always_include_linkage_data: true` not working HOT 5
- Repeating the same sort attribute with reverse direction overwrites the previous direction for that attribute
- Documentation for ResourceSerializer with includes is incorrect HOT 3
- What's the status of version 0.11.0?? IS THIS PROJECT DEAD? HOT 1
- Alternative to ActiveRelationResource which does not produce extra DB queries HOT 2
- Adopt the `frozen_string_literal` magic comment to optimize string storage
- sort by country that is related to resource not directly but through the third relation is not work properly HOT 3
- Rails Namespace Conflict with jsonapi.rb
- unable to build w/o specifying rails version in ENV
- add support for rubocop
- Test for missing inverse relationships HOT 4
- Change ResourceIdentity <=> to take resource_klass into account when sorting.
- Class caching is too aggressive in dev HOT 1
- Aliased Attribute Names Are Not Used In Error Responses
- get_join_arel_node fails with include_optional_linkage_data if there is already a join
- RFC: Guide for handling generic filter/fieldset errors, such as empty inputs and 'undefined'
- Polymorphic Relationships Not Found On Aliased Resource HOT 1
- Basic Usage guide includes deprecated Faker method HOT 1
- Problem with deprecated config value: `default_processor_klass`. HOT 1
- `:unprocessable_entity` deprecated in newest Rack, and causing a `0` response HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jsonapi-resources.