我正在寻找一种解决方案,允许我的应用程序上的用户拥有超过 1 封电子邮件。这应该类似于 Facebook、LinkedIn 和 Quora。一个帐户可以有多个电子邮件,其中 1 个作为主要电子邮件。
是否有设计可用的交 key 解决方案?鉴于它是如此常见,我希望不必从头开始编写它。
想法?谢谢
最佳答案
嗯...我会建议创建新模型,你会做这样的事情:
例如模型是 UserEmail
.
class UserEmail < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :user_emails
end
并覆盖设计的方法以在
User
中查找记录模型:def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
if email = conditions.delete(:email)
User.includes(:user_emails).where('user_emails.email = ?', email).first
else
super(warden_conditions)
end
在此处阅读有关覆盖的更多信息:https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address
关于ruby-on-rails - Rails Gem Devise 是否有允许用户拥有多封电子邮件的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16285077/