私は自分のブログのために「アーカイブ」ページを作成しようとしています。それは月ごとにグループ化された逆の順序で慢性的に順序付けられたすべてのブログタイトルを一覧表示する必要があります。ブログ記事の月間アーカイブを表示する
私は、MySQLのようなDATE_FORMAT機能を持たないDataMapperを使用しています。これは単にクエリ内でグループ化することができないことを意味します。そのために私は、Rubyで単純な作業をすべて行う以外の方法はありません。
これは私が現在持っているものです。
# GOOD: order of posts within the months are correct
# BAD: order of months is random
@posts = Post.published(:order => :published_at.desc)
@months = {}
@posts.each do |post|
month_year = post.published_at.strftime("%B %Y")
@months[month_year] = [] unless @months.has_key? month_year
@months[month_year] << post
end
ビュー:
.archive
- @months.each do |month, posts|
%h2= month
%ol
- posts.each do |post|
= partial(post)
これは、私は数ヶ月のために彼らは、ハッシュ内に含まれているので、めちゃくちゃされている以外何をしたいん。 (私はRuby 1.8のため、ハッシュの順序は実際はランダムです)。
月の注文を正しくするにはどうすればよいですか?おそらく、代わりに配列を使用する必要がありますが、残りのコードがどのように見えるかわかりません。
おかげで、それは働きました! – Marc