crudvoltrb

Volt: Equivalent of destroy_all?


I have a form with a "reset this collection" button. Looks kind of like this:

<button e-click="reset_patients">reset patients</button>

In my controller, I do this:

def reset_patients
  puts "destroying"
  store.patients.each{|p| p.destroy}
end

What I expect is that the clients displaying the list will show an empty list. What is actually happening is that some but not all of the items are deleted.

How is a "dump the entire collection in the trash can" operation handled on a persistent backed store (i.e.: model :store)? Also, is there a way to make these cascade through related collections?


Solution

  • We don't have .destroy_all yet. Its on my short list, but I'm reworking one thing in the data provider API to make it a bit smarter. For now you can do

    store.patients.reverse.each(&:destroy)
    

    (The .reverse is needed since your deleting array objects as you loop)