Jay*_*Jay 20 ruby ruby-on-rails devise ruby-on-rails-3
我设置Devise使用用户名而不是电子邮件地址登录,因为我们的大量用户与他们的配偶共享同一个电子邮件地址.这是我们服务的独特市场.但每个配偶需要单独的账户来记录个性工具的结果.
数据库不再需要唯一的电子邮件地址,因此它将接受两个帐户的相同电子邮件地址.但是,Devise仍然需要为每个帐户提供唯一的电子邮件地址.是否有可以用来改变它的设置或解决方法?
Moi*_*dar 50
=用户模型
def email_required?
false
end
def email_changed?
false
end
# For ActiveRecord 5.1+
def will_save_change_to_email?
false
end
Run Code Online (Sandbox Code Playgroud)
=迁移
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
Run Code Online (Sandbox Code Playgroud)
eug*_*gen 15
看看吧config/initializers/devise.rb
.您可以更改默认的身份验证密钥,默认情况下是:email
您想要的任何密钥,例如:
config.authentication_keys = [ :username ]