2012-09-10 93 views
0

显示组数据的最佳方式是什么?对订购数据进行分组

目前在我的控制,我有:

@items = Item.order("group_name") 

然后在我看来,我可以通过它进行迭代:

- @items.each do |item| 
    %p= item.name 

什么会产生这样的最清洁和最有效的方法:

<strong>Group Name 1</strong> 
<p>Item 1</p> 
<p>Item 2</p> 
<strong>Group Name 2</strong> 
<p>Item 1</p> 

回答

1

控制器

@items = Item.sanitized_and_ordered 

型号

class Item << ActiveRecord::Base 
scope :ordered_group ,order('group_name') 

class << self 
    def sanitized_and_ordered 
     ordered_group.group_by {|item| item.group_name} 
    end 
end 
end 

查看

- @items.each_pair do |key,value| 
    %p= key 
    - value.each do |item| 
     %p= item.name