Giter VIP home page Giter VIP logo

Comments (6)

remi avatar remi commented on May 26, 2024

What is the response sent back from the API? The only way you could get this error is if the response body would be true:

json = MultiJson.load('true')
json.delete(:errors) # raises NoMethodError: undefined method `delete' for true:TrueClass

I actually wanted to implement some kind of check for this over the weekend to make sure this error doesn’t happen because I thought that only objects or arrays could be sent back from MultiJson.load. But it looks like simple values like true or "foo" are actually valid JSON data.

Anyway, making the endpoint called by #destroy return something like {} for now should do the trick for now. But I’ll come up with something better soon.

from her.

remi avatar remi commented on May 26, 2024

FWIW, I just pushed a commit in master (30584da) that should provide a better error message when encountering this problem. Will be part of the next release.

from her.

hamann avatar hamann commented on May 26, 2024

You're right, the response is true

Is there a best practice how such a response message should look like?

from her.

remi avatar remi commented on May 26, 2024

By default, if the server returns an empty hash ({} or { "model_name": {} }, depending on whether you’re using the parse_root_in_json setting), it will keep the model attributes intact and just mark it as destroyed (calling #destroyed? on it will return true).

In my opinion, a good practice would be to return an empty response and send it using the 204 No Content HTTP header. Her will behave the same way as described above.

from her.

remi avatar remi commented on May 26, 2024

I’m going to close this issue now. Please let me know if you have further questions!

from her.

hamann avatar hamann commented on May 26, 2024

Sorry, but I haven't got time yet to test it. But the case is clear to me and I will change the response messages. Thanks for your work and help!

from her.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.