Dans mon contrôleur, j'ai le code qui ressemble à ce qui suit:Ruby on Rails: comment attraper ActiveRecord :: Rollback?
@mymodel.transaction do
for a in arr
@mymodel.some_method(a)
end
end
dans @ mymodel # some_method je pourrais jeter une exception ActiveRecord::Rollback
qui cependant dans la db fait ce qu'il doit faire, je puis simplement obtenir un HTTP 500 et aucun moyen d'intercepter l'exception pour permettre à l'utilisateur de savoir d'une manière élégante ce qui s'est mal passé.
J'ai essayé d'encapsuler @ mymodel.transaction do dans un bloc begin/rescue, mais cela ne le fera pas non plus. Quelle est la meilleure façon d'attraper l'exception afin que je puisse présenter la bonne vue à l'utilisateur?
Le bloc de transaction n'attrape-t-il pas l'exception de restauration? C'est ce qu'il est censé faire ... – Matchu