2016-05-23 39 views
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' 
+0

您是否查看本指南? 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),以及其他步驟取決於你的設置 –

+0

問題是我從DB中刪除了'email'字段。我很想調整一些東西,但不知道在什麼地方...... –

回答

1

只需要調整用戶模型添加以下內容:

def email_required? false end

def email_changed? false end

相關問題