我想通过一个表(Lessons)进行排序,并按主题(课程表中的一个字段)对它们进行分组。然后按主题显示它们。
所以我会有一个标题:主题
然后它将显示该主题中每个项目的图像,标题和描述。 然后它将移动到下一个主题,依此类推最多5个项目
例如:
Math
[img] [img] [img] ...
title title title ...
desc desc desc ...
Science
[img] [img] [img] ...
title title title ...
desc desc desc ...
etc.....
在控制器中你会如何进行排序然后分割?
如果您拥有动态数量的主题,如何在视图中显示此内容?
答案 0 :(得分: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
)是与该分组匹配的所有项目的数组。
修改此选项以适合您的实际数据和输出需求。