2012-04-16 46 views
1

我想通過一個表(經驗教訓)排序,並按主題(課程表中的字段)對它們進行分組。然後按主題顯示它們。排序表條目,然後分組

所以我想有一個標題:標題

然後它會顯示在該主題的每個項目的圖像,標題和描述。 然後它會移動到下一個主題等多達5個項目

例如:

Math 
[img] [img] [img] ... 
title title title ... 
desc desc desc ... 

Science 
[img] [img] [img] ... 
title title title ... 
desc desc desc ... 

etc..... 

在控制器,你將如何去排序,然後瓜分?

如果您擁有動態數量的主題,您如何在視圖中顯示此內容?

+0

如何存儲主題? 「has_many」課是否是自己的模式? – 2012-04-16 00:17:45

+0

對不起......我應該寫得更好。主題是課程表中的一列 – 2012-04-16 01:47:17

+1

它可能應該是has_many課程的另一張表。你擁有它的方式是非規範化的,通常[規範化數據](http://en.wikipedia.org/wiki/Database_normalization)是最好的。 – 2012-04-16 02:22:27

回答

2

您的需求的肉被Enumerable#group_by滿足:

my_lessons.sort_by{ |lesson| 
    # Or use ActiveRecord to sort your data 
    lesson.title 
}.group_by{ |lesson| 
    lesson.subject 
}.each do |subject,subj_lessons| 
    puts "subject: #{subject}" 
    subj_lessons.each do |lesson| 
    puts lesson.title 
    end 
end 

無論你從GROUP_BY回報將是你的哈希鍵,而值(subj_lessons)是所有相符,該項目的數組分組。

修改此以適合您的實際數據和您的輸出需求。

相關問題