かなりの数のユーザーが配偶者と同じメールアドレスを共有しているため、メールアドレスではなくユーザー名でログインするようにDeviseを設定しました。それは私たちがサービスを提供するユニークな市場です。しかし、各配偶者は、パーソナリティ商品の結果を記録するために別々のアカウントを必要とします。
データベースは一意の電子メールアドレスを必要としないため、2つのアカウントで同じ電子メールアドレスを受け入れます。ただし、Deviseでは、アカウントごとに一意のメールアドレスが必要です。これを変更するために使用できる設定または回避策はありますか?
config/initializers/devise.rb
を見てください。デフォルトの認証キー(デフォルトでは:email
)を任意の名前に変更できます。次に例を示します。
config.authentication_keys = [ :username ]
=ユーザーモデル
def email_required?
false
end
def email_changed?
false
end
# For ActiveRecord 5.1+
def will_save_change_to_email?
false
end
=移行
Rails g migration update_index_on_users
def up
sql = 'DROP INDEX index_users_on_email'
sql << ' ON users' if Rails.env == 'production' # Heroku pg
ActiveRecord::Base.connection.execute(sql)
end
指示を見つけてください ここ
devise
によって指定されたuniqueness validation
のみを削除し、他のものを保持したい場合は、 this (Rails
> = 4.1.6の場合)を参照してください。