2011-01-05 5 views
0
modules=MenuModule.all(:order => "module_seq") 
modules.each do |m| 
    groups=m.menu_groups.all(:order => "group_seq") 
    groups.each do |g| 
    items=g.menu_items.all(:order => "item_seq") 
    items.each do |i| 
     puts i.name 
    end 
    end 
end 

업데이트 주문 포함 포함?신청 방법 :이 장면에 포함 시키시겠습니까?

Something like MenuModule.find(:all,:include => {:menu_groups(:order => "group_seq"), :menu_items(:order => "item_seq")},:order => "module_seq") 

가능합니까?

+0

어떤 레일 버전을 사용하고 있습니까? 2 또는 3? – CodeJoust

+0

레일 버전 2.3.9 –

+0

내 대답을 편집했습니다. – CodeJoust

답변

1

참조하십시오 item_seq가 아닌 http://www.arraystudio.com/as-workshop/nested-include-activerecord-option.html

MenuModule.all(:include => [{:menu_groups, :menu_items}], :order => 'module_seq,modules.group_seq,modules.groups.item_seq') 

경우 당신은 무엇에 정렬 할, 당신은 아마 루비 정렬 방법을 사용하여 정렬 할 수 있습니다. 중첩 된 조인의 mysql order 절은 조인에서 하나의 제약에 의해서만 순서가 정해집니다.

+0

하지만 "group_seq"및 "item_seq"에 의해 적절한 순서로 menu_groups 및 menu_item을 가져 오려고합니다. 주문과 함께 사용하는 방법은? –

관련 문제