Rails 4按月和年排序查询

时间:2014-10-07 15:38:16

标签: sql ruby-on-rails ruby

我遇到了解决此问题的最佳方法的问题,但基本上我有一个博客,我希望显示所有已发布博客的月份和年份的存档。点击链接" 2012年5月"将带您到同一月份之间写的所有博客(例如:2012年5月5日,2012年5月20日......)。有没有办法在同一年的同一个月内使用created_at并传递数月和年的参数来获取所有记录?是否有更好的方法来做到这一点。

2 个答案:

答案 0 :(得分:4)

在你的控制器中尝试这样的事情:

month = Date.new(params[:year], params[:month])
@entries = Blog.where(created_at: month.all_month)

#all_month方法将创建一个包含月份开头和结尾的Range,并在where子句中传递Range会对该日期进行BETWEEN查询。

答案 1 :(得分:1)

是的,你可以在Rails中做到这一点,例如2014年5月的所有博客:

time = DateTime.new(2014,5)
blogs = Blog.where("created_at >= ? and created_at <= ? ", time.beginning_of_month, time.end_of_month)