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 行目にあり、これは明らかに機能しません。これを行う最善の方法は何ですか?

4

1 に答える 1

2

MySql dayofmonth()関数を使用できます。

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

このように、必要なレコードのみを db からフェッチします。

その日に複数のアクティビティがある場合でも、最初のアクティビティのみが選択されることに注意してください。

于 2013-07-12T10:13:04.107 に答える