0
我正在嘗試設置一個Rails應用程序,它使用Backbone和Devise進行註冊。422錯誤,設計/骨幹網
在Chrome控制檯錯誤回調的響應文中說
responseText: "{"errors":{"email":["can't be blank"],"password":["can't be blank"]}}"
但是,日誌服務器說無法處理的實體
Parameters: {"email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "registration"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}}
(0.1ms) begin transaction
(0.1ms) rollback transaction
Completed 422 Unprocessable Entity in 4ms (Views: 0.3ms | ActiveRecord: 0.1ms)
我有一個設置URL骨幹用戶模型爲保存
UserRegistration = Backbone.Model.extend({
url: '/users.json',
paramRoot: 'user',
defaults: {
"email": "",
"password": "",
"password_confirmation": ""
}
});
在關聯的視圖中,我得到屬性fr OM登記表,將它們在模型中,然後保存模型
var email = $('#email').val();
var password_confirmation = $('#password_confirmation').val();
var password = $('#password').val();
this.model.set({email : email, password_confirmation: password_confirmation, password: password})
this.model.save(this.model.attributes, {
success: function(userSession, response) {
console.log("success");
console.log(userSession);
console.log(response);
console.log(this.model.url);
},
error: function(userSession, response) {
console.log("error");
console.log(userSession);
console.log(response);
}
});
}
設置模型屬性(保存之前)我做了的console.log(this.model.attributes)後,它們被設置
Object {email: "[email protected]", password: "snowy", password_confirmation: "snowy"}
我的用戶模型看起來像這樣
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
end
任何人都可以做任何建議嗎?
近期發佈的一些Devise版本只對html做出響應,所以我安裝了Devise 2.1.2以使其響應json以使其與Backbone兼容。這不是問題。
的用戶部分是否使用[骨幹護欄(https://開頭github上。 COM/codebrew /骨幹網護欄)? – 2013-02-09 01:14:30
@ muistooshort骨幹在軌寶石。 – BrainLikeADullPencil 2013-02-09 01:34:58
'paramRoot:'user''應該在與服務器交談時將所有數據放入''user''命名空間,不是嗎?但請注意,'params'中的所有內容都處於最高級別...... – 2013-02-09 01:39:12