寄存器视图由骨干呈现。当我提交表单以注册新用户时,我得到了这样的错误。
我知道它会检查电子邮件是否存在。但我不知道为什么我发布了我的所有属性,但后端似乎没有得到它。
答案 0 :(得分:2)
我猜您的控制器正在查看params[:user]
以查找用户的信息,但您的:user
中没有params
。 The manual谈到这个问题:
使用Rails
[...]
类似地,Backbone PUT和POST指示模型的JSON表示,其中默认情况下Rails需要命名空间属性。您可以让控制器直接从params
过滤属性,或者您可以在Backbone中覆盖toJSON以添加Rails所需的额外包装。
因此请调整控制器以查看params
而不是params
内的某些内容,或调整Backbone模型的toJSON
看起来像这样:
toJSON: function() {
return { user: _.clone(this.attributes) };
}
如果您更改toJSON
,则需要调整向模板提供数据的方式,以补偿toJSON
返回值更改。