所以我有一个CareerEntry
模型,它具有以下属性:name, job_category, company, group, location, year, full_intern
,它代表了人们收到的工作机会。 full_intern
是一个“实习”或“全职”字符串,代表工作机会的类型。所有CareerEntries都将由Admin界面创建,因此它基本上充当独立模型。这是我的问题:给定一堆CareerEntry对象,我想显示一个表格显示在我的职业页面上(在PagesController
中有一个动作)。
我希望根据多个属性对表进行排序。我希望每年在表格中都有自己的部分,然后在每年内,我希望将实习条目组合在一起,并将全职条目组合在一起。然后,在这些分组中,我希望每个job_category都是它自己的部分(job_categories包含“投资银行”或“技术”等内容。)
我想要的一个很好的例子显示在this link.
的“2013”标签下实现这一目标的最佳方法是什么?我知道,在我careers
的{{1}}动作定义中,我可以:
PagesController
但是这只会按照我想要的顺序返回所有条目,并且不允许我将标题和分隔符分开,例如,job_categories。
有没有更简单的方法来实现我正在寻找的东西?
答案 0 :(得分:1)
也许您正在寻找.group_by?
分组
根据您提供的链接,您似乎希望按年度对结果进行分组,如下所示:
@careerentries = CareerEntry.order(year: :desc, fullintern: :asc, job_category: :asc)
@entries_by_year = @careerentries.group_by { |entry| entry.year }
这将为您提供根据您的规格订购的所有数据。然后,您可以使用group_by
方法对其进行排序:
@entries_by_year.each do |entry|
entry.name
end
然后你可以把它放到你的表中