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?'
答案 0 :(得分:0)
这是错误的结构......嵌入的文档不能在父文档之外的任何其他模型中引用。
正如文件所述
嵌入式1-n:
孩子嵌入父文档中的一对多关系。
参考1-n:
一对多关系,其中儿童存储在来自父文档的单独集合
所以嵌入式文档(作为某个文档中的属性存储)无法作为单独的集合引用(如引用的1-n 关系)..
你可以考虑改变模型定义以适应你的目的...... 看一下讨论同样问题的question