Devise + Backbone.js,无法创建新用户

时间:2012-12-28 18:08:11

标签: ruby-on-rails backbone.js devise

寄存器视图由骨干呈现。当我提交表单以注册新用户时,我得到了这样的错误。

enter image description here

我知道它会检查电子邮件是否存在。但我不知道为什么我发布了我的所有属性,但后端似乎没有得到它。

1 个答案:

答案 0 :(得分:2)

我猜您的控制器正在查看params[:user]以查找用户的信息,但您的:user中没有paramsThe manual谈到这个问题:

  

使用Rails
  [...]
  类似地,Backbone PUT和POST指示模型的JSON表示,其中默认情况下Rails需要命名空间属性。您可以让控制器直接从params过滤属性,或者您可以在Backbone中覆盖toJSON以添加Rails所需的额外包装。

因此请调整控制器以查看params而不是params内的某些内容,或调整Backbone模型的toJSON看起来像这样:

toJSON: function() {
    return { user: _.clone(this.attributes) };
}

如果您更改toJSON,则需要调整向模板提供数据的方式,以补偿toJSON返回值更改。