2011-10-04 3 views
0

나는 걷기 위해 노력하고있는 n-tier 계열 시스템이있어서 계열사의 계열사리스트를 얻을 수 있습니다. 나는 다른 분야에서 각 항목에 "id"와 "affiliate_id"를 가지고있다.나무를 걷기 위해 항상 노력하고 있습니다.

def find_affiliates_under(affid) 
    affs=Array.new 
    Affiliate.find(:all, :conditions => "affiliate_id = " + affid.to_s, :select => :id).each do |a| 
    affs.concat(find_affiliates_under(a.id)) 
    end 
return affs.uniq 
end 

내가 뭘 잘못하고 있니? 루비에 대한 더 많은 경험을 가진 사람의 포인터를 고맙게 생각합니다 감사합니다!

답변

0

당신은 id입니까? 아니면 중첩 된 개체를 찾고 계십니까? select => :id 옵션을 지정하면 각 개체의 id 만 선택하게됩니다.

awesome_nested_set을 살펴 보시기 바랍니다. 나는 당신이하려고하는 것을 성취 할 것이며, 시간을 절약 할 것이라고 생각합니다.

+0

예를 들어 이번 경우에는 자녀 수를 계산하려고합니다. 나는 트리와 중첩 된 세트 플러그인으로 동작을 보았습니다. 둘 중 하나는 리엔지니어링중인 애플리케이션의 복잡성으로 인해 수행 할 수없는 데이터 모델 변경이 필요할 것입니다. –

관련 문제