我有一个活动模型,它有一个活动日期。现在我正在迭代日期数字,我希望显示具有该日期编号的活动集合中的活动。像这样:
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 :(得分:2)
您可以使用MySql dayofmonth()功能:
activity = Activity.where("dayofmonth(created_at) = ?", day).first
像这样它只会从db中获取必要的记录。
请注意,即使您当天有多个活动,也只会选择第一个活动。