web-dev-qa-db-ja.com

考案-メールアドレスが一意である必要がないように設定を変更する方法

かなりの数のユーザーが配偶者と同じメールアドレスを共有しているため、メールアドレスではなくユーザー名でログインするようにDeviseを設定しました。それは私たちがサービスを提供するユニークな市場です。しかし、各配偶者は、パーソナリティ商品の結果を記録するために別々のアカウントを必要とします。

データベースは一意の電子メールアドレスを必要としないため、2つのアカウントで同じ電子メールアドレスを受け入れます。ただし、Deviseでは、アカウントごとに一意のメールアドレスが必要です。これを変更するために使用できる設定または回避策はありますか?

20
Jay

config/initializers/devise.rbを見てください。デフォルトの認証キー(デフォルトでは:email)を任意の名前に変更できます。次に例を示します。

config.authentication_keys = [ :username ]

15
eugen

=ユーザーモデル

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
48
Moin Haidar

指示を見つけてください ここ

1
rookieRailer

deviseによって指定されたuniqueness validationのみを削除し、他のものを保持したい場合は、 thisRails> = 4.1.6の場合)を参照してください。

0
Yogesh Khater