mongoid embeds_many相关集合保持空白

时间:2016-06-20 08:56:16

标签: ruby-on-rails mongodb mongoid mongoid5

我有两个型号

class Supplier < User
  include Mongoid::Document
  embeds_many :images
  accepts_nested_attributes_for :images
end

class Image
 include Mongoid::Document
 embedded_in :supplier
end

当我以嵌套形式保存图像时,它会被保存在供应商集合中,即

 s = Supplier.first
 s.images #some Image records

但问题是图像采集本身仍然是空的,即

 Image.count # gives 0

1 个答案:

答案 0 :(得分:1)

Image模型的文档存储在Supplier模型的文档中。所以基本上没有在mongo中创建名为images的集合。在你的mongo控制台中检查一下。您只会收集suppliers个收藏品,而不会收集images个收藏品。

如果您想直接访问图像而无需访问特定图像,则可以执行此操作

Supplier.all.pluck(:images)
#It will give you an array of all images

或实施has_many

class Supplier < User
  include Mongoid::Document
  has_many :images
  accepts_nested_attributes_for :images
end

class Image
  include Mongoid::Document
  belongs_to :supplier
end