これは機能します。これで、:username と :password、または :email と :password のいずれかでログインできるようになりました。
ただし、コンソールでアカウントを作成するときに、電子メールを空白のままにすると、検証エラーが発生します。どうやら、ユーザーを作成するにはまだ電子メールが必要です。
:username と :password、または :email と :password だけを使用してユーザーを作成できるようにしたいと考えています。
これは機能します。これで、:username と :password、または :email と :password のいずれかでログインできるようになりました。
ただし、コンソールでアカウントを作成するときに、電子メールを空白のままにすると、検証エラーが発生します。どうやら、ユーザーを作成するにはまだ電子メールが必要です。
:username と :password、または :email と :password だけを使用してユーザーを作成できるようにしたいと考えています。
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