está lidando com erros do lado do servidor personalizados em dados de ember ao salvar o modelo possível

Existe uma maneira correta de lidar com erros personalizados ao salvar um modelo? Para dar um exemplo, digamos que eu tenho um modelo com apenas duas propriedades "nome" e "valor". E quando eu faço:

var myModel = this.get('store').createRecord('myModel', {"name": "someName", "value": "someValue"});
myModel.save().then(function() {
    //if success
    //server responded with {"myModel:{"id":1,"name":"someName","value":"someValue"}"}
},function() {
    //if failure
    //server responded with {"error":"some custom error message"}
    //BUT HOW TO CATCH THIS AND POSSIBLY REMOVE THE MODEL FROM THE STORE

});

Uma maneira de contornar isso é fazer uma chamada ajax extra para verificar se o nome é único e, em seguida, salve. Eu só estou querendo saber qual é a melhor abordagem / elegante aqui.

Obrigado Dee

EDITAR: Eu pensei que poderia ajudar um pouco para dar mais contexto no lado do servidor das coisas no groovy. Então aqui está:

No meu controlador eu tenho:

def create() {

    try {
        newRow = someService.create(params)
        render someService.list(newRow) as JSON//returns data in format needed by ember-data
    }
    catch (ValidationException ex) {
        def errors = ["errors":[]]

        ex.errors.allErrors.each{
            if(it.arguments[0] == "fieldName" && it.code=="constrantViolated"){
                errors.errors.push(["field":it.arguments[0],"message":"some custom message"])
            }
        }
        //I am using 422 here because of post in http://stackoverflow.com/questions/7996569/can-we-create-custom-http-status-codes
        render(status: 422, contentType: 'JSON', text: (errors as JSON))
    }

}

Então no meu controlador de brasas:

    var myModel = self.get('store').createRecord('myModel ', myModelDataInJSON);
myModel .save().then(function () {
        //if success
                },
    function (response) {
        myModel .deleteRecord();
        var errors = $.parseJSON(response.responseText);
        for (var key in errors.errors) {
            //do something
        }
    });

questionAnswers(3)

yourAnswerToTheQuestion