2010-03-10 5 views
1

나는 MongoMapper의 임베디드 문서 (EmbeddedDocuments)라는 개념에 조금 빠져있다. 내 모델은 다음과 같이 :MongoMapper는 EmbeddedDocument를 찾는다

class Post 
    include MongoMapper::Document 

    many :categories 
    many :qualities 
end 

class Category 
    include MongoMapper::EmbeddedDocument 

    belongs_to :post 
    many :qualities 
end 

class Quality 
    include MongoMapper::EmbeddedDocument 
    key :category_id, ObjectId 

    belongs_to :post 
    belongs_to :category 
end 

내 질문이 가지 간단하다 : 나는 게시물을 표시하고 범주과 (CATEGORY_ID)에 속하는 모든 자질의 나열 할입니다.

답변

0

post.categories.each do |cat| 
    puts cat 
    puts cat.qualities 
end 

각 EmbeddedDocument가 부모와 함께 belongs_to를 필요로하지 않으므로 데이터베이스에 저장하는 방법에 따라 다릅니다. belongs_to를 보려면 각 문서에 _parent_document adn _root_document가 있습니다.

+0

실제로 각 카테고리에는 자질 배열이 있지만 비어 있습니다. 품질은 카테고리에 포함되지 않지만 게시물에는 포함됩니다. – pex

+0

그렇다면 연관성과 카테고리는 어떻게 다른가요? – shingara

+0

같은 부모의 두 개의 임베디드 문서가 belongs_to/many 관계를 가질 수도 있다고 생각했습니다. 카테고리 속의 category_id를 품질로 저장합니다. – pex

관련 문제