2
我試過調整我的Devise
視圖並用用戶名替換了電子郵件。當然,我調整了initializers/devise.rb
,將:email
的出現次數全部替換爲:username
。我調整屏幕和東西工作正常,直到我試圖從數據庫中刪除字段email
。設計錯誤未定義的方法`電子郵件'
完成此操作後,我仍然能夠根據需要使用我的新密鑰(用戶名)登錄並創建帳戶,但是當嘗試更新用戶時,我收到此錯誤消息,指出電子郵件方法不是定義。
我明白,我很想念從哪裏接電話本不存在的屬性/方法的地方,但我不知道在哪裏....
一些日誌:
NoMethodError in Devise::RegistrationsController#update
undefined method `email' for #<User...
Rails.root: /vagrant/src/projectX
Application Trace | Framework Trace | Full Trace
activemodel (4.0.1) lib/active_model/attribute_methods.rb:439:in `method_missing'
activerecord (4.0.1) lib/active_record/attribute_methods.rb:155:in `method_missing'
activemodel (4.0.1) lib/active_model/validator.rb:151:in `block in validate'
activemodel (4.0.1) lib/active_model/validator.rb:150:in `each'
activemodel (4.0.1) lib/active_model/validator.rb:150:in `validate'
activerecord (4.0.1) lib/active_record/validations/presence.rb:5:in `validate'
activesupport (4.0.1) lib/active_support/callbacks.rb:283:in `_callback_before_13'
activesupport (4.0.1) lib/active_support/callbacks.rb:377:in `_run__265703777__validate__callbacks'
activesupport (4.0.1) lib/active_support/callbacks.rb:80:in `run_callbacks'
您是否查看本指南? https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address 它涉及:更新Devise的參數殺菌劑,添加你的模型的attr_accessor,修改devise的身份驗證密鑰(config/init/devise.rb),以及其他步驟取決於你的設置 –
問題是我從DB中刪除了'email'字段。我很想調整一些東西,但不知道在什麼地方...... –