循环使用Ruby On Rails数年和数月

时间:2013-05-06 21:33:46

标签: ruby-on-rails ruby-on-rails-3 loops

我已经和代码争战了好几天了,我真的不能从中得到任何好处!

我正在制作一个博客档案,我正在寻找一种方法来从created_at获取所有年份和月份。可以说我从2011年,2012年和2013年获得了很多帖子。

下面的“代码”只是我正在尝试构建的结构的一个示例(这只是让您了解我希望它看起来像什么)

years.each do |y|
   puts y.created_at.year

      y.created_at.month.each do |m|
      puts m.created_at.month

          (And ye, posts for each months loops here)

      end

end

我所追求的输出是:

2013
  May
    Name of post
    Name of post
  April
    Name of post
    Name of post
  Mars
    Name of post
    Name of post

2012
  December
    Name of post
    Name of post
  November
    Name of post
    Name of post
  October
    Name of post
    Name of post

我希望我说得够清楚!我敢肯定这比我现在想的要简单得多!非常感谢这里的一些帮助!

1 个答案:

答案 0 :(得分:1)

month, year = nil, nil
Post.order("created_at desc") do |post|
  if year != post.created_at.year
    year = post.created_at.year
    puts year
  end

  if month != post.created_at.month
    month = post.created_at.month
    puts "\t#{post.created_at.strftime("%B")}"
  end

  puts "\t\t#{post.name}"
end