2013-06-28 66 views
0

我有一個應用程序運行得很好,使用Devise進行身份驗證。我添加了CanCan,現在我與Devise有問題。鑑於標準的「encrypted_pa​​ssword」和「password_confirmation」屬性如果那麼當控制器嘗試做他們沒有被指定爲attr_accessible:如何解決設計質量分配錯誤中的衝突

@user = User.new(params[:user]) 

我得到的標準MassAssignment錯誤。但是,如果我將它們添加到attr_accessible列表中,我可以創建用戶,但由於attr_accessible不允許Devise加密密碼,因此它將在密碼驗證上失敗。我懷疑的問題是我的東西航線,因爲我有兩個:

devise_for :users, :path_prefix => 'secure' 
resources :users 

的資源:用戶有這樣的管理和使用標準的CRUD類型的操作來管理慘慘。

不知道是否需要更多的細節,但這聽起來像是一個核心問題,我扼殺了我的腳趾。

謝謝

+0

你的Ability類是什麼樣的? –

回答

0

我發現了這個問題。有人已將模型的attr_accessible列表更改爲具有encrypted_pa​​ssword而不是密碼。 Devise正在查找參數中的密碼,然後爲模型創建encrypted_pa​​ssword。

另一位newbeee程序員已經吸取了教訓:)我也是,仔細檢查由newbes做出的更改!

Thankyou