2012-10-10 2 views
0

나는 acts_as_tree 인 헤더를 가질 수있는 범주가 있습니다. 구조체는 다음과 같을 수 있습니다 :뭔가의 모든 ID의 목록을 얻고 싶습니다 acts_as_tree

class Category < ActiveRecord::Base 
    has_many :headers 
end 

class Header < ActiveRecord::Base 
    belongs_to :category 
    acts_as_tree :order => :position 
end 

Category: 
    Header 
    Header 
    Header 
     Header 
     Header 
    Header 

범주에 대한 헤더의 모든 ID를 추출하고 싶습니다.

자동으로 수행되는 작업이 있습니까? 아니면 통과하는 간단한 방법이 있습니까?

@category = Category.find(params[:id]) 
다음

ids = @category.headers.map(&:id) 

이 줄은 특별한 범주에 대한 헤더 'ID의 배열을 반환합니다 사전에

들으 모든

+0

'카테고리'와'헤더 '는'has_many/belongs_to' 관계가있는 두 개의 서로 다른 모델입니까? –

+0

은 관계를 반영하도록 코드를 편집했습니다. – timpone

답변

0

먼저 당신이 좋아하는 필요 카테고리를 검색

+0

thx, Sergey. 나는 이것을 시도했지만 문제는 최상위가 아닌 헤더에 대한 계층을 하강시키지 않는다는 것이다. – timpone

+0

당신이 할 수있는 최선의 일은'acts_as_tree'가 기능면에서 제한적이기 때문에 'ancestry' gem을 사용하는 것입니다. 또는 자식 헤더의'category_id'를'after_create' 콜백 어딘가의 부모'category_id' 값에 따라 설정하는 것과 같은 원숭이 패치를 작성할 수 있습니다 –

관련 문제