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 정말 결과를 반환 범위하지만 방법을 사용하지 않기 때문에