Ruby on rails Mongoid多态关联轨道

Ruby on rails Mongoid多态关联轨道,ruby-on-rails,ruby,mongodb,mongoid,polymorphic-associations,Ruby On Rails,Ruby,Mongodb,Mongoid,Polymorphic Associations,工作环境: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 Mongoi

工作环境: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
我们正在尝试在外观和文章到标签之间实现多态功能

i、 e.假设我们有一个名为“politics”的标签,我们希望将该标签添加到一篇得分为“0.9”的文章和一个得分为“0.6”的外观中。分数应保存在EntityTags模型中

问题是: 标记的第一个赋值是有效的,但是当我尝试将同一个标记赋值给另一个实体时,它会将它删除,并将它从第一个实体重新赋值给后者

任务如下所示:

entity.tags << tag

entity.tags我已经根据下面的答案实现了一个非优雅的工作解决方案

StackOverflow是一个询问意见、获取帮助和检索反馈的社区。请分享你的部分代码,人们可能会发现它很有用。如果你只说“我得到了解决方案”,没有其他人可以学习,但也许他们需要一个例子。