2014-01-06 46 views
1

所以我有一個CareerEntry模型,它具有以下屬性:name, job_category, company, group, location, year, full_intern,它代表人們收到的工作機會。 full_intern是一個字符串,可以是「實習」或「全職」,並代表提供的工作類型。所有CareerEntry將由Admin界面創建,因此它基本上是作爲獨立模型運行。這是我的問題:給出一堆CareerEntry對象,我想顯示一張表格以顯示在我的職業頁面上(在PagesController中有一個動作)。Rails 4:顯示項目集合的表格,按各種項目屬性排序?

我想要根據多個屬性對錶進行排序。我希望每年在表格中成爲自己的一部分,然後在每年的一年中,我希望將實習條目分組在一起,並將全職條目組合在一起。然後,在這些分組中,我希望每個job_category都是它自己的部分(job_categories包含諸如「投資銀行」或「Technology」之類的東西)。

下面顯示了我要做的一個很好的示例this link.

的「2013」​​選項卡要實現此目標,最佳方法是什麼?我知道,在我的PagesControllercareers動作定義,我可能有:

class PagesController < ApplicationController 

    def careers 
     @careerentries = CareerEntry.order(:year => :desc, :fullintern => :asc, :job_category => :asc) 
    end 

end 

但這隻會返回我想要的順序所有條目,也不會允許我把標題和分隔分離比如說job_categories。

有什麼更簡單的方法來實現我在找什麼?

回答

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 

然後,您可以工作到表這個

很好的參考Group posts by Year - Rails

相關問題