2013-07-12 190 views
0

我有一个有活动日期的活动模型。现在我正在迭代日数,并且想要显示具有该日数的活动集合中的活动。这样的事情:确定日期

1 activities = Activity.all 
2 (1..31).each do |day| 
3 activity = activities.where(activity_date.day == day) 
4 unless activity.blank? 
5  ..show activity data... 
6 end 
7 end 

问题是与第3行,这显然不工作。这样做的最好方法是什么?

+0

可以发现类似的问题你的答案: http://stackoverflow.com/questions/9624601/activerecord-find-by-year-day-or-month-on-a-date-field – BgTA

回答

2

您可以使用MySQL dayofmonth()功能:

activity = Activity.where("dayofmonth(created_at) = ?", day).first 

喜欢这个只会从数据库中获取必要的记录。

请注意,即使您在当天有多个活动,它也只会选择第一个活动。