在我的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 验证不起作用