0

私はこれに従いました: https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address

これは機能します。これで、:username と :password、または :email と :password のいずれかでログインできるようになりました。

ただし、コンソールでアカウントを作成するときに、電子メールを空白のままにすると、検証エラーが発生します。どうやら、ユーザーを作成するにはまだ電子メールが必要です。

:username と :password、または :email と :password だけを使用してユーザーを作成できるようにしたいと考えています。

4

1 に答える 1

2

User モデルに以下を追加してみてください:

def email_required?
  false
end

また、users テーブルの email 列を null にすることを許可する移行を作成する必要がある場合もあります (既に null が許可されている列ではない場合)。

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

編集

あとは、少なくともユーザー名または電子メールが存在することを確認するだけです。次の検証ステートメントを設定することでそれを行うことができます。

validate :username_or_email_is_present

def username_or_email_is_present
  if self.username.blank && self.email.blank?
    errors.add(:base, "Email or Username must be set")
  end
end
于 2012-07-07T11:40:03.973 に答える