[英]Mongoid Polymorphic Association Rails
工作环境:Rails 4.2 mongoid 5.1
以下是我的模型:
class Tag
include Mongoid::Document
include Mongoid::Timestamps
field :name, type: String
belongs_to :entity_tags, :polymorphic => true
end
class EntityTag
include Mongoid::Document
include Mongoid::Timestamps
field :tag_id, type: String
field :entity_id, type: String // Entity could be Look or Article
field :entity_type, type: String // Entity could be Look or Article
field :score, type: Float
end
class Look
include Mongoid::Document
include Mongoid::Timestamps
has_many :tags, :as => :entity_tags
end
class Article
include Mongoid::Document
include Mongoid::Timestamps
has_many :tags, :as => :entity_tags
end
我们正在尝试在外观和标记商品之间实现多态功能。
例如,假设我们有一个名为“ politics”的标签,我们希望将该标签添加到得分为“ 0.9”的文章中,并添加到得分为“ 0.6”的外观中。 分数应保存在EntityTags模型中。
问题:标签的第一次分配有效,但是当我尝试将同一标签分配给另一个实体时,它将删除它,并将其从第一个重新分配给后者。
分配如下所示:
entity.tags << tag
有谁知道正确的方法来保存关联并创建具有正确多态性和分配的EntityTag对象?
谢谢!
根据此链接中的以下答案,我设法实现了一个非优雅的工作解决方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.