Grazie.Originariamente inviato da weppos
http://railscasts.com/episodes/52-up...ugh-checkboxes
No, solleva un'eccezione in ogni caso (almeno su Rails 2.3.2).find non solleva eccezione in quel caso perché gli passi come parametro un array. Se non ricordo male, se un ID non esiste lui lo ignora. Al contrario di find(id).
Un sistema che m'è venuto in mente su due piedi e che non è proprio eccezionale ma che potrebbe servire come spunto
codice:def self.destroy_by_ids(s) ids = s.split(",") transaction { destroy(ids) } rescue ActiveRecord::RecordNotFound return nil endDestoy ritorna l'oggetto freezato nal caso vada a buon fine e nel caso non vada a buon fine non saprei dire, non è documentato, leggendo il codice al volo non l'ho capito e non saprei come farlo fallire...Destroy ritorna true o false a seconda che la cancellazione sia andata o meno a buon fine (per vari motivi).
Usando map tu collezioni la sequenza di return e quindi avrai che se un elemento è false, allora quel record non è stato cancellato.