1

我想对表格(课程)进行排序并按主题(课程表格中的字段)对它们进行分组。然后按主题显示它们。

所以我会有一个标题:主题

然后它将显示该主题中每个项目的图像、标题和描述。然后它会移动到下一个主题,依此类推,最多 5 个项目

例如:

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

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

etc.....

在控制器中,您将如何进行排序然后划分?

如果您有动态数量的主题,您如何在视图中显示它?

4

1 回答 1

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) 是与该分组匹配的所有项目的数组。

修改它以适合您的实际数据和您的输出需求。

于 2012-04-16T00:53:55.587 回答