mongoid embeds_many связанная коллекция остается пустой

У меня две модели

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 ответ

Решение

Документы вашего Image модель хранится в документе вашего Supplier модель. Так что в принципе нет коллекции с именем images создано в монго. Проверьте это в своей консоли Монго. Вы только будете иметь 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
Другие вопросы по тегам