0

在我的omniauth&omniauth-identity基于应用程序中,我遇到了以下问题:

管理用户数据的三个表:

# Stores User data _not_ authentication data
class User
  include Mongoid::Document

  has_many :identities
  field :email, type: String
end

# Stores Authentication data (i.e. Facebook)
class Identity
  include Mongoid::Document

  belongs_to :user
end

# Stores Authentication data for omniauth-identity
class LocalIdentity < Identity
  include OmniAuth::Identity::Models::Mongoid

  field :email, type: String
end

现在的问题是我在LocalIdentity. 因此,每当用户在模型中更改他的电子邮件地址时,User我都需要同步电子邮件地址。起初这似乎微不足道,但一旦涉及更多领域等,就会变得非常混乱。

所以我的问题是:有没有办法消除和之间的User冗余LocalIdentity

在思考解决方案时,我得出以下结论:

  • 不支持多重继承,因此LocalIdentity < Identity, User不起作用
  • LocalIdentity嵌入在每个和User写入槽中的值将不起作用 b/c 验证不起作用
4

0 回答 0