2014-05-15 4 views
0

나는 본질적으로 acts_as_tree에 대해이 질문을 던졌지 만 좀 더 일반적으로 보입니다. acts_as_tree를 사용하여 "카테고리"모델을 가지고 있습니다. 저는 종종 다양한 쿼리를 위해 다른 모델과 조인 할 필요가 있습니다. 그러나 필요한 조건을 만들기 위해 자식, 조상, 형제, 자손과 같은 제공된 범위를 사용하는 방법을 알지 못합니다.Ruby에서 명명 된 스코프로 결합하기

콘크리트 예 :

class Category < ActiveRecord::Base 
    acts_as_tree 
    has_many :photo 
end 

class Photo 
    belongs_to :category 
end 

cat = Category.first 

어떻게 고양이의 자녀 또는 형제 자매의 모든 사진의 모든 사진을 조회 할 수 있습니다? 나는 유효한 코드가 아닙니다 알고

Photo.joins(cat.children) 
Photo.joins(cat.siblings) 

: 내가 뭔가를해야 할 것 같다.

class Photo 
    belongs_to :category 

    scope :from_category, -> (category) { 
     joins(:category).where(category: category) 
    } 
end 

cat = Category.first 

Photo.from_category(cat.children) 
Photo.from_category(cat.siblings) 

을 그리고 그것은 작동합니다 : act_as_tree 정말 결과를 반환 범위하지만 방법을 사용하지 않기 때문에

답변

0

, 당신은 그것을 좋아 할 수 있습니다.