Rails / mongoid中的复杂关联主题与反外键

时间:2017-06-06 16:12:51

标签: ruby-on-rails associations mongoid

让关联正确的问题。在我的模型中,我有用户和请求。请求拥有所有者和许多参与者。用户有很多请求和许多参与。

我试着像这样建模:

class User
  include Mongoid::Document

  has_many :requests, inverse_of: :owner
  has_many :participations, class_name: 'Request', inverse_of: :participants
  ...

class Request
  include Mongoid::Document

  belongs_to :owner, class_name: 'User', inverse_of: :requests
  has_many :participants, class_name: 'User', inverse_of: :participations
  ...

当我尝试通过调用

设置参与时
 @request.participants << current_user

我收到以下错误:

  

消息:将(n)用户添加到请求#参与者时,Mongoid可以   不确定要设置的反向外键。尝试过的关键是   'participations_id'。摘要:将文档添加到关系时,   Mongoid尝试将新添加的文档链接到基础   内存中的关系,以及设置外键以链接它们   数据库方面。在这种情况下,Mongoid无法确定是什么   逆外键是。分辨率:如果不需要反转,   像belongs_to或has_and_belongs_to_many一样,确保:inverse_of   =&GT; nil设置在关系上。如果需要逆,则很可能无法从关系的名称中找出逆   你需要明确告诉Mongoid关于什么是关系   逆是。示例:class Lush包括Mongoid :: Document
  has_one:whiskey,class_name:“Drink”,inverse_of :: alcoholic end
  class Drink包括Mongoid :: Document belongs_to:alcoholic,   class_name:“Lush”,inverse_of ::威士忌结束

我没有得到它,我已经设置了所有反转,我做错了什么?

0 个答案:

没有答案