Ember.js TypeError:jsonErrors不是对象

Ember.js TypeError:jsonErrors不是对象,ember.js,Ember.js,我最近升级到了一个金丝雀版本的Ember.js1.0。升级后,Ember无法再解析来自服务器的验证错误。我处理的表单提交操作如下: submit: (event, view) -> @get('model').save().then ((response) => @transitionToRoute('organization.timeline', @content) ), (response) => @set "errors", response.re

我最近升级到了一个金丝雀版本的Ember.js1.0。升级后,Ember无法再解析来自服务器的验证错误。我处理的表单提交操作如下:

submit: (event, view) ->
  @get('model').save().then ((response) =>
    @transitionToRoute('organization.timeline', @content)
  ), (response) =>
    @set "errors", response.responseText
def create
  organization = Organization::Master.find(params[:id])
  if organization.update_attributes(organization_params)
    render json: organization, status: 201
  else
    render json: organization.errors, status: 422
  end
end
在升级到金丝雀版本之前,这项工作与预期的一样。现在,当验证失败时,我会出现以下错误:

TypeError: jsonErrors is not an object
这在调用
save
时发生,因此即使我将代码减少到:

submit: (event, view) ->
  @get('model').save()
我仍然得到错误


我在Tom Dale的一次演讲中听说,Ember正在推出一个新的系统来处理验证错误,我认为这就是导致冲突的原因。我找不到这种新方法的任何文档(甚至是一个pull请求)。如果有人能给我指出正确的方向,我将不胜感激。

看来我需要改变发送错误的方式。我正在使用铁路后端。响应代码如下所示:

submit: (event, view) ->
  @get('model').save().then ((response) =>
    @transitionToRoute('organization.timeline', @content)
  ), (response) =>
    @set "errors", response.responseText
def create
  organization = Organization::Master.find(params[:id])
  if organization.update_attributes(organization_params)
    render json: organization, status: 201
  else
    render json: organization.errors, status: 422
  end
end
Ember现在支持一种更简单的方法:

def create
  organization = Organization::Master.find(params[:id])
  organization.update_attributes(organization_params)
  respond_with organization
end
这样,Ember就能够解析错误了