1

假设我有一个带有 created_at、title 和 id 的 post 模型。我如何建立一个包含年 > 月 > 帖子的数组以用于显示档案。

到目前为止,我有:

@posts = Post.all(:order => 'created_at DESC')
@post_months = @posts.group_by { |t| t.created_at.beginning_of_month }

这给了我类似 {"June 2012" => {"post1", "post2"}} 的东西,很接近。

http://shouweick.blogspot.co.uk/2012/02/handling-background-jobs-in-rails-32.html这个博客有我想要的输出格式 {year => {november => {post1, post2 },十二月 => {post3}}}

4

1 回答 1

2

首先按年分组,然后按月分组:

Hash[
  x.group_by{|x| x.created_at.year}
   .map{|k,v| [k,v.group_by{|x| x.created_at.month}]}
]
于 2012-06-26T19:54:38.690 回答