2016-06-20 7 views
0

나는 두 가지 모델mongoid embeds_many 관련 컬렉션 내가 공급 업체 모음 즉</p> <pre><code>s = Supplier.first s.images #some Image records </code></pre> <p>에 임베디드 막아 도착하지만 문제 자체가 남아있는 이미지 모음입니다 중첩 된 형태로 이미지를 저장하면

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

class Image 
include Mongoid::Document 
embedded_in :supplier 
end 

가 비어 있습니다 비어있는 ie ie

Image.count # gives 0 

답변

1

Image 모델의 문서는 stor입니다. Supplier 모델의 문서 안에 있습니다. 따라서 기본적으로 mongo에 생성 된 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 
+0

구현은 mongoid의 기본 동작입니다? 그것은 나에게 이해가되지 않는다. 필요한 경우 배열 필드를 만들 수있었습니다. 하지만 이드를 기반으로 이미지 레코드를 가져 오려고합니다. 'Image.find'는'Supplier.first.images.find'가 아닙니다. – Faizan

+0

당신이 찾고있는 것은'embedds_many' 대신'has_many'입니다. – Kumar

+0

사용할 수있는 마지막 옵션입니다. – Faizan