Ruby on rails 3 删除两个关联Mongoid模型中的冗余字段
在我基于Ruby on rails 3 删除两个关联Mongoid模型中的冗余字段,ruby-on-rails-3,class,mongoid,omniauth,Ruby On Rails 3,Class,Mongoid,Omniauth,在我基于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) clas
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
#存储用户数据_非u认证数据
类用户
include Mongoid::Document
有很多:身份
字段:电子邮件,类型:字符串
结束
#存储身份验证数据(即Facebook)
类标识
include Mongoid::Document
属于:用户
结束
#存储omniauth标识的身份验证数据
类的局部性
现在的问题是,我在LocalIdentity
中复制了电子邮件字段。因此,每当用户在user
模型中更改其电子邮件地址时,我都需要同步电子邮件地址。起初这看起来很琐碎,但一旦涉及到更多领域,就会变得非常混乱
所以我的问题是:有没有办法消除用户
和本地身份
之间的冗余
在思考解决方案时,我得出以下结论:
- 不支持多重继承,因此
将不起作用LocalIdentity
- 在每个
用户中嵌入
,以及 通过值写入将不起作用b/c验证将不起作用本地身份
委派:电子邮件,:to=>:user
委派字段,而不是在本地身份中委派自己的字段
?我会尝试,不知道委派存在