Mongoid :: Errors :: MixedRelations + save

时间:2012-07-20 10:06:40

标签: ruby-on-rails ruby-on-rails-3 mongodb mongoid

我有3个型号:

class Interest
  include Mongoid::Document

  has_many :user_hobby
end

class UserHobby
 include Mongoid::Document
  field :contacts, :type => Array

  belongs_to :interest, :foreign_key => "interest", inverse_of: nil
  belongs_to :interest, :foreign_key => "related_interests", inverse_of: nil
  embedded_in :user
end

class User
 include Mongoid::Document
 embeds_many :user_hobby
end

我必须在user和user_hobby之间添加嵌入式关系,但之后(在我的测试中) 当我想保存兴趣时,我有这个错误:

  

Mongoid :: Errors :: MixedRelations:由于嵌入了UserHobby,因此不允许通过关系关联引用兴趣文档中的(n)UserHobby文档。

我看了这个主题,但也没有帮助我Mongoid::Errors::MixedRelations

感谢。

1 个答案:

答案 0 :(得分:6)

在此主要问题是您的UserHobby模型嵌入在用户中。根据mongodb,如果嵌入了文档,则除了嵌入文档之外的任何其他模型都不能引用它。如果要从其他模型引用UserHobby文档,则UserHobby和User不应该有嵌入关系。