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