Coder Social home page Coder Social logo

add #discard! about discard HOT 7 CLOSED

jhawthorn avatar jhawthorn commented on September 13, 2024 9
add #discard!

from discard.

Comments (7)

artemf avatar artemf commented on September 13, 2024 1

@rlue Actually, even simple validation error can break the deletion, which is odd to say the least. I've looked at the code and it does simple #save to "soft-delete" the record, meaning a) validation error can break soft-deletion, b) any update callback can break (stop) soft-deletion, c) else?

The author seem to have a very particular idea about how to implement soft-deletion (which he calls "done right"), but validations breaking the deletion look very wrong to me.

from discard.

jhawthorn avatar jhawthorn commented on September 13, 2024

Sounds great!

from discard.

rlue avatar rlue commented on September 13, 2024

I'm curious: under what conditions might you expect #discard to fail (other than, say, running out of database connections or some kind of network failure between app/DB servers)?

from discard.

goravbhootra avatar goravbhootra commented on September 13, 2024

@rlue calling discard on a non-existent id. bang method definitely has its use cases.

from discard.

rlue avatar rlue commented on September 13, 2024

@artemf that's an interesting point. What do you think the correct behavior should be? Bypass validation on discard (e.g., via #update_columns) and validate on restore?

from discard.

artemf avatar artemf commented on September 13, 2024

@rlue I would check how destroy is performed in rails and would design the call in a similar way (callbacks, etc.). Running update hooks on #discard! Really? But that's what this gem (~ regular #save) is doing.

from discard.

skatkov avatar skatkov commented on September 13, 2024

@artemf I've been looking at paranoia gem before and wrote my own implementation that is very similar to discard approach. I never had a real world scenario, then I had to update data and discard a record at the same time (so i never ran into issue your mentioning).

While I agree with you notion. Have you experienced issues with behavior you mention here?

from discard.

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.