Mongoid:如何从嵌入式文档中引用文档

时间:2014-06-25 15:57:48

标签: mongoid

class Customer
  embeds_many :addresses
  #....
end

class Address
  embedded_in :customer
  belongs_to :region
  #...
end

我并不关心找到引用某个区域的所有嵌入地址,但我希望能够使用由belongs_to生成的region =和region_id访问器。

文档说必须定义关系的两个方面,除非其中一个嵌入,但是当我忽略区域方关联时,我得到:

NoMethodError: undefined method `[]' for nil:NilClass
    from /[...]/accessors.rb:113:in `needs_no_database_query?'

1 个答案:

答案 0 :(得分:0)

这是错误的结构......嵌入的文档不能在父文档之外的任何其他模型中引用。

正如文件所述

  

嵌入式1-n:

     

孩子嵌入父文档中的一对多关系。

     

参考1-n:

     

一对多关系,其中儿童存储在来自父文档的单独集合

所以嵌入式文档(作为某个文档中的属性存储)无法作为单独的集合引用(如引用的1-n 关系)..

你可以考虑改变模型定义以适应你的目的...... 看一下讨论同样问题的question