首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带“外键”的Mongoid

带“外键”的Mongoid
EN

Stack Overflow用户
提问于 2011-06-13 13:37:40
回答 1查看 3.7K关注 0票数 4

作为mongodb的老手,我创建了以下结构:

代码语言:javascript
复制
User: { 
  name: str, 
  email: ... 
}

Gift: { 
  # author and receiver refer to User objects obviously
  author: object_id(...),     
  receiver: object_id(...), 

  name: str 
  ... 
}

我想在mongoid中正确地映射这一点:

代码语言:javascript
复制
class User 
  include Mongoid::Document

  has_many :gifts
end

class Gift 
  include Mongoid::Document

  belongs_to :user
end

但是,映射是不正确的。G= Gift.first;未定义g.author。如何进行引用?

从技术上讲,它是:

代码语言:javascript
复制
User <--- 1: N via author---> Gift <--- N:1 via receiver---> User

(这意味着一个用户可以是许多礼物的作者,一个用户可以是许多礼物的接收者,但一个礼物只能有一个作者和接收者)。

请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-13 13:56:26

如果Gift看起来像这样,你可能会更幸运地使用Rails:

代码语言:javascript
复制
Gift: { 
  # author and receiver refer to User objects obviously
  author_id: object_id(...),     
  receiver_id: object_id(...), 

  name: str 
  ... 
}

然后,向Gift添加一个:foreign_key

代码语言:javascript
复制
class Gift 
  include Mongoid::Document

  belongs_to :user, :foreign_key => 'author_id'
end
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6327000

复制
相关文章

相似问题

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