В вашем вопросе отсутствует вопрос. :)
Вы почти у цели. Я считаю, что код, который вы вставили правильно, делит статьи на год / месяц. Теперь вам нужно отобразить их. Вы можете сделать это с помощью ERB или Haml (некоторые люди предпочитают первое, другие предпочитают второе). Например, с ERB:
# somewhere in lib/ (I propose lib/helpers/blogging.rb)
require 'date'
def grouped_articles
sorted_articles.group_by do |a|
[ Date.parse(a[:date].year, Date.parse(a[:date]).month ]
end.sort
end
# in your blog archive item
<% grouped_articles.each_pair do |yearmonth, articles_this_month| %>
<h1>Year <%= yearmonth.first %>, month <%= yearmonth.last %></h1>
<% articles_this_month.each do |article| %>
<h2><%= article[:title] %></h2>
<% end %>
<% end %>
Я не проверял это, но в этом суть.