2013-07-04 63 views
1

從Ruby 1.9.3上的Rails 3.2.13升級到Rails 4.0.0。Rails 4.0.0,Device 3.0.0.rc ::不能批量分配受保護的屬性

Devise 3.0.0.rc不會進行批量分配。我遵循我發現的所有建議,從這兩種方法開始描述:https://github.com/plataformatec/devise#strong-parameters

登錄/註銷的作品,但註冊並不:

Started POST "/users" for 127.0.0.1 at 2013-07-03 21:01:47 -0500 
Processing by RegistrationsController#create as HTML 
Parameters: {"utf8"=>"✓", 
"authenticity_token"=>"5QPwkbXULEsF5nCiMMK7zd04baZ5kOecgqV2BdRnSEc=", 
"user"=>{"first_name"=>"test", "last_name"=>"testor", "email"=>"[email protected]", 
"username"=>"testy", "password"=>"[FILTERED]", 
"password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"} 
WARNING: Can't mass-assign protected attributes for User: email, password, 
password_confirmation, first_name, last_name, username 

這是設計的問題嗎?任何人都有解決方案?

謝謝!

+0

也許你在應用程序中覆蓋devise/registrations_controller? – Aguardientico

+0

還要驗證您是否從**用戶**模型中刪除了** attr_accessible **。 – Aguardientico

+0

是的,這一切都完成了,我想到了什麼是問題,請參閱下面的答案。 – Arta

回答

2

的問題是,我用以下railscasts http://railscasts.com/episodes/415-upgrading-to-rails-4寶石 'protected_attributes':

... 
# add these gems to help with the transition: 
gem 'protected_attributes' 
... 

它沒有發生在我身上的寶石會阻礙Rails 4方法,如params.require(:incoming_model).permit(....)。我可能會誤解。

取出寶石可以消除此問題。這裏提到的第一種方法(懶惰的方式)工作:https://github.com/plataformatec/devise#strong-parameters

相關問題