我正在建立一個站點的年度存檔,我讓它工作,但我正在使用group_by。這個特定的網站最終會有成千上萬的帖子,我想將分組移到數據庫,但我不確定如何將其轉換爲活動記錄查詢。我該如何轉換這個group_by語句,以便它可以在數據庫而不是Ruby上運行?
我使用活動記錄和軌道4,這是我到目前爲止有:
在控制器:
@posts_by_year = @posts.group_by { |post| post.published_at.year }
在視圖:
<% @posts_by_year.each do |year, post| %>
<li><%= "#{year} - #{pluralize post.count, 'post'}" %></li>
<% end %>
產生如下列表:
2013 (5 posts)
2012 (2 posts)
2010 (1 post)
我怎麼能複製這一確切的功能,但有DB做分組,而不是和你認爲這是值得的開關,如果你希望每年有2000-3000的帖子?最後,如果我使用mysql或postgres,活動記錄的實現會不同嗎?
如何比較:group(「DATE_TRUNC('year',published_at)」)。count? – AntelopeSalad