我正在为一个网站建立一个年度档案,我让它工作,但我正在使用 group_by。这个特定站点最终将有数千个帖子,我想将分组移动到数据库中,但我不确定如何将其转换为活动记录查询。
我正在使用活动记录和 rails 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)
我怎样才能复制这个确切的功能,但让数据库进行分组,如果您预计每年有 2,000-3,000 个帖子,您认为是否值得进行转换?最后,如果我使用 mysql 或 postgres,活动记录的实现会有所不同吗?