我想不要求使用設計登錄電子郵件。我從配置/初始化/ devise.rb刪除電子郵件:設計:不需要電子郵件
config.authentication_keys = [ :login ]
,並將此向我的用戶模型:
def email_required?
false
end
然而,當我嘗試保存用戶,我收到此錯誤:
SQLite3::SQLException: users.email may not be NULL
我想改變一些在遷移?
我想不要求使用設計登錄電子郵件。我從配置/初始化/ devise.rb刪除電子郵件:設計:不需要電子郵件
config.authentication_keys = [ :login ]
,並將此向我的用戶模型:
def email_required?
false
end
然而,當我嘗試保存用戶,我收到此錯誤:
SQLite3::SQLException: users.email may not be NULL
我想改變一些在遷移?
它看起來像是你的電子郵件字段在數據庫中設置爲「not NULL」或「Allow Null」爲false。 並且您直接從數據庫中收到錯誤。 假設你的用戶模式被稱爲用戶需要添加休耕移植來修復:
change_column :users, :email, :string, :null => true
文檔: http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column
附加刪除「需要」從:電子郵件列,您需要刪除「 :validatable「來自用戶模型。
有些參考文獻說,你不應該刪除:validatable
,因爲它會刪除密碼驗證。
就我而言,我從我的用戶在數據庫中刪除列email
,並制定開始崩潰。 我包括:
def email_required?
false
end
def email_changed?
false
end
在
User.rb
,和它的工作正常。
http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/Validatable – 2013-10-08 22:06:56
是的這是非常重要的 – 2014-01-15 03:07:18