私は単純なブログ アプリを構築しています。ユーザーが月をクリックすると、その月のすべての記事が表示されるアーカイブを追加したいと考えています。月と年に基づいてグループ化するようなものです。例えば、
記事:
- 2012年6月
- 2011 年 5 月
したがって、日付をクリックすると、その月のすべての記事を一覧表示するページが表示されます。どうすればそれを成し遂げることができますか?
私は単純なブログ アプリを構築しています。ユーザーが月をクリックすると、その月のすべての記事が表示されるアーカイブを追加したいと考えています。月と年に基づいてグループ化するようなものです。例えば、
記事:
したがって、日付をクリックすると、その月のすべての記事を一覧表示するページが表示されます。どうすればそれを成し遂げることができますか?
2012 年 7 月の場合:
require 'date'
month = 7
year = 2012
start_date = Date.new(year,month,1)
end_date = Date.new(year,month+1,1) - 1.day
articles_in_july = Article.where(:created_at => start_date..end_date)
上記のコンソールでテストできます。ただし、モデルではおそらく次のことが必要です。
def self.in_month(month,year)
start_date = Date.new(year,month,1)
end_date = Date.new(year,month+1,1) - 1.day
where(:created_at => start_date..end_date)
end
次に、次のように呼び出すことができます。
Article.in_month(7,2012)
または、ユーザーが_多くの記事を持っていると仮定します:
current_user.articles.in_month(7,2012)