Right, the current rollback only allows for an escape path before save() is called.
In my case, I’m simply flipping a “published” boolean from true back to false, so it’s literally just:
model.set("published", false).save()
in the failure callback of the original save(). If you’re looking to reset all of the model’s attributes (or a larger subset), you’ll have to store them somewhere before the model becomes dirty.
It does seem silly to have to make a second server trip when we know from the 422 response that the model was not updated. Am I wrong in thinking this is one of the intended uses of transactions (if/when they are re-integrated into Ember Data 1.0.0+)?