1

認証にDeviseを使用しているRailsアプリがあります。Devise では、ユーザーがクリックして、パスワードをリセットするためのリンクを含む電子メールを取得できます。

私の問題は、テーブル「ユーザー」に電子メールフィールドが必要ないことです。認証するためのログイン フィールドがあり、別のシステムから sincronized されます。メールを必須に設定できません。

電子メールが設定されていない場合は、電子メール フィールドを確認し、カスタム メッセージをユーザーに返したいと考えています。そうであれば、Devise は続行してパスワードをリセットします。

別の投稿で、「email_required?」メソッドをオーバーライドする必要があることを見ました。ユーザーモデルでは、「電子メールは空白にすることはできません」というエラーメッセージが表示されます。

def email_required?
  false
end
4

1 に答える 1

0

ユーザーモデルでは、おそらくそのような電子メールの何らかの検証が必要です

validates_presence_of :email

また、データベースを移行して電子メールをnull以外にしたい場合は、次のようになります

change_column :users, :email, :string, :null => false 
于 2013-01-08T22:18:07.777 に答える