2013-02-09 68 views
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兼容。這不是問題。

+0

的用戶部分是否使用[骨幹護欄(https://開頭github上。 COM/codebrew /骨幹網護欄)? – 2013-02-09 01:14:30

+0

@ muistooshort骨幹在軌寶石。 – BrainLikeADullPencil 2013-02-09 01:34:58

+0

'paramRoot:'user''應該在與服務器交談時將所有數據放入''user''命名空間,不是嗎?但請注意,'params'中的所有內容都處於最高級別...... – 2013-02-09 01:39:12

回答