首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongoid协会

Mongoid协会
EN

Stack Overflow用户
提问于 2011-02-18 06:38:40
回答 1查看 1.8K关注 0票数 0

我遇到了一个问题,我试图从注释模型中引用两次名为user的模型。

第一种情况是因为用户可以有很多评论(作为接收者)

但另一个联想是一个评论有一个作者。是这样吗?

代码语言:javascript
复制
references_one :user, :inverse_of :author

那么,我是否需要在用户中为该用户的评论添加另一个关联,而不是该用户的评论。

代码语言:javascript
复制
embedded_in :user, :inverse_of => :commentsout

我希望这有点道理。

也许这样的代码更有意义(伪代码)

代码语言:javascript
复制
user:
   has_many: comments => author
   can_be: author, recipient

comment:
   belongs_to_many: users => recipients
   has_one: user => author
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-19 03:37:45

如果我对这个问题的理解是正确的,那么您可以这样定义关联:

代码语言:javascript
复制
class User
  include Mongoid::Document      
  field :name,  :type => String      
  references_many :comments, :inverse_of => :author
  references_and_referenced_in_many :comments_received, :class_name => 'Comment', :inverse_of => :recipients
end

class Comment
  include Mongoid::Document    
  field :text, :type => String
  referenced_in :author, :class_name => 'User'
  references_and_referenced_in_many :recipients, :class_name => 'User', :inverse_of => :comments_received
end

如果无法从关联名称推断出目标,则需要添加一个:class_name参数。这使得对同一个类有多个关联成为可能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5035597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档