Ruby on rails Ember和Rails,处理后端错误

Ruby on rails Ember和Rails,处理后端错误,ruby-on-rails,ember.js,Ruby On Rails,Ember.js,我正在尝试向我的Ember/Rails应用程序添加一些后端验证。因此,阅读所有我能找到的帖子,我做了以下工作: actions: { create: function(permission){ var route = this; permission.save().then(function(){ route.transitionTo('permissions'); }); } } 在我的Rails模型中,我添加了验证项的存在性和唯一性 在Rail

我正在尝试向我的Ember/Rails应用程序添加一些后端验证。因此,阅读所有我能找到的帖子,我做了以下工作:

actions: {
  create: function(permission){
    var route = this;

    permission.save().then(function(){
      route.transitionTo('permissions');
    });
  }
}
在我的Rails模型中,我添加了验证项的存在性和唯一性

在Rails控制器中,我有一个在尝试保存后调用的方法:

def validate(permission)
  if permission.valid?
    render json: permission
  else
    render json: {errors: permission.errors}, status: :unprocessable_entity
  end
end
在余烬路线中,我有以下内容:

actions: {
  create: function(permission){
    var route = this;

    permission.save().then(function(){
      route.transitionTo('permissions');
    });
  }
}
当从后端返回任何错误时,我得到的只是控制台上的一条消息:

Error: Assertion Failed: Error: The backend rejected the commit because it was
invalid: {name: can't be blank, description: can't be blank}

"InvalidError@http://127.0.0.1/assets/ember-data.js?body=1:3512
ActiveModelAdapter<.ajaxError@http://127.0.0.1/assets/ember-data.js?body=1:235
superWrapper@http://127.0.0.1/assets/ember.js?body=1:1295
RESTAdapter<.ajax/</hash.error@http://127.0.0.1/assets/ember-data.js?body=1:1530
jQuery.Callbacks/fire@http://127.0.0.1/assets/jquery.js?body=1:3100
jQuery.Callbacks/self.fireWith@http://127.0.0.1/assets/jquery.js?body=1:3212
done@http://127.0.0.1/assets/jquery.js?body=1:9313
.send/callback@http://127.0.0.1/assets/jquery.js?body=1:9721
"
错误:断言失败:错误:后端拒绝提交,因为提交失败
无效:{name:不能为空,description:不能为空}
"InvalidError@http://127.0.0.1/assets/ember data.js?body=1:3512

ActiveModelAdapter您需要处理
save
-承诺的故障状态,以防止余烬数据将故障冒泡到控制台

permission.save().then(function(){
  route.transitionTo('permissions');
}, function() {
  // Couldn't save, do nothing about it.
});

这将防止断言错误阻止执行,并允许Ember数据发挥其魔力,将后端返回的错误添加到您的模型实例中。

我试图将代码添加到Ember-Data.js中,以尝试了解发生了什么,但这对我没有任何帮助。我仍然在寻找解决方案,这里。似乎控制台中出现的错误并没有阻止其余JS的执行,从我所知,但我不是100%确定。我仍然不明白为什么iError和error没有正确设置。还有其他人遇到过这样的问题吗?这解决了它。现在我有一个新问题,所以我想是时候创建了另一个帖子。谢谢!