2012-02-06 13 views
15

私はdeviseを使用してサインインする際に電子メールを要求しません。私は、設定/初期化子/ devise.rbからメールを削除:devise:電子メールを要求しない

config.authentication_keys = [ :login ] 

と私のユーザモデルにこれを追加しました:私は、ユーザーを保存しようとすると、私はこのエラーを取得していますが

def email_required? 
    false 
end 

SQLite3::SQLException: users.email may not be NULL 

私は移行で何かを変更すると思いますか?

答えて

9

追加:

change_column :users, :email, :string, :null => true 

ドキュメント: は、ユーザーモデルは、あなたがそれを修正するための休閑の移行を追加する必要があるユーザーと呼ばれていると仮定すると、 :ユーザーモデルからの「有効化可能」。

26

パスワードの検証が削除されるため、:validatableを削除しないでください。私の場合は

は、私は、データベース内の私のユーザーから列emailを除去し、工夫がクラッシュし始めました。 User.rb

def email_required? 
    false 
end 

def email_changed? 
    false 
end 

、それが適切に働いていた: 私は含まれています。

+4

http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/Validatable –

+0

これは非常に重要です –

関連する問題