2012-01-28 16 views
52

我剛剛在我的應用程序中安裝了Devise,配置了視圖和一切。然而,當我點擊註冊按鈕,我得到這個錯誤:註冊用戶時未定義的局部變量或方法`unconfirmed_email'?

NameError in Devise::RegistrationsController#create 
undefined local variable or method `unconfirmed_email' for #<User:0x00000103721b28> 

這是爲什麼?另外,我正在使用tlsmail通過我的gmail企業帳戶發送電子郵件。這也可能是一個問題。

+0

這通常表示數據庫中缺少像用戶模型的列。您可能需要參考Devise文檔以查看是否需要運行遷移以添加它。 – tadman 2012-01-28 23:01:21

回答

114

unconfirmed_email需要reconfirmable。出於某種原因,這在默認情況下在config/intializers/devise.rb中啓用:

config.reconfirmable = true 

您只需將其設置爲false即可。

+5

或者註釋掉。 – Jazz 2012-09-27 15:41:00

25

你錯過了db中的unconfirmed_email列。

遷移中添加t.reconfirmable和運行rake db:migrate

,或者如果你正在使用設計> = 2.0

t.string :unconfirmed_email 
+0

謝謝,但我其實不想再次確認,因爲某些原因,它默認是啓用的。看到我的答案。 – varatis 2012-01-28 23:10:11

+0

什麼是't.reconfirmable'?你可能是指't.string:unconfirmed_email'?哎呀,有點晚了=) – trushkevich 2013-05-18 21:12:32

+0

@trushkevich,不! devise有它自己的輔助方法(比如重新確定),你只需要調用設計模塊名稱,它會做所有的遷移工作。 – Fivell 2013-05-20 06:14:03

相關問題