如何申请:包括在这种情况下?

时间:2011-01-05 19:18:54

标签: ruby-on-rails ruby

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

UPDATE 如何使用包含订单?

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

有可能吗?

1 个答案:

答案 0 :(得分:1)

请参阅: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') 

如果item_seq不是您想要排序的,您可能可以使用ruby排序方法进行排序。根据我的意识,嵌套连接中的mysql order子句只会在连接中按一个约束排序。