傑克達與瑞兒絲的大小事

快速筆記整理網站開發上碰到的各種技巧和問題,免得年紀大忘光,至少還有一個地方可以查找

Undefined local variable or method `unconfirmed_email’ 錯誤解決

安裝 devise gem ,新增一筆 User 資料時,頁面出現

NameError in Devise::RegistrationsController#create

undefined local variable or method `unconfirmed_email’ for #<User:0x00000101a7dd28>

發生原因:

unconfirmed_email is required for reconfirmable. For some reason this was enabled by default in config/intializers/devise.rb:

config.reconfirmable = true

unconfirmed_email 欄位是針對 email 重新認證的必要欄位,預設 reconfirmable = true ,是表示當 email 欄位被修改後需要再重新認證,先將新的 email 記錄在 unconfirmed_email 欄位裡,直到完成認證,才會將 unconfirmed_email 記錄的 email 複製到 email 欄位

User 資料表中必須對應增加 unconfirmed_email 欄位,可參考透過 devise 生成的 migration

解決方法:

因為我只是需要 email 做為我的帳號,不會有變更發生,也就不會有再次認證的情況,所以將 config.reconfirmable 改為 false 就好,如下:

config.reconfirmable = false

參考文章:

http://stackoverflow.com/questions/9049151/undefined-local-variable-or-method-unconfirmed-email-when-registering-users

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: