我跟着維基後添加的用戶名作爲設計的另一個身份驗證方法.. https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign_in-using-their-username-or-email-address使用用戶名或電子郵件的設計曹景偉錯誤
一旦我完成這些步驟,並試圖登錄我得到這個錯誤:
ActiveRecord::StatementInvalid in Devise::SessionsController#create
SQLite3::SQLException: no such column: users.login: SELECT "users".* FROM "users" WHERE "users"."login" = '[email protected]' LIMIT 1
正如您所看到的,create方法正在尋找一個登錄列。我不知道爲什麼會發生這種情況。我覆蓋了註冊控制器,並將self.find_for_authentication方法與其他方法一起添加到它。
有什麼想法?
我需要發佈什麼代碼才能提供更多線索?
你在你的數據庫中有一列名爲login(或可能是登錄名)? – jamiethepiper
沒有。我將用戶名列添加到用戶表中,並且where子句應檢查該列是否爲||電子郵件列與傳入的登錄參數匹配。 – Trent
檢查設計版本,然後嘗試將find_for_authentication重命名爲find_for_database_authentication,因爲該wiki頁面中存在此註釋:較早的版本可能已調用find_for_authentication find_for_database_authentication。 –