0

私はプロジェクトを毎週見ています。プロジェクトごとに、曜日ごとに最初のレコードを取得しています。その日の最初のレコードを常に取得し、どの平日にレコードがないかを知ることが重要です。現在、ネストされたforループで、プロジェクトごとに個別のSQL文字列と曜日の組み合わせを使用してこれを行っています。

これは間違っていると感じます。GroupByとLimitを介してActiveRecord/SQLでこれを取得し、Ruby/Railsを使用して結果を処理できるはずです。これは可能ですか?

前もって感謝します。–デビッド

4

1 に答える 1

1

それは仕事をしますか?(MySQLを使用)

@projects = []
for day in 1..7
  @projects.push Project.where("DAYOFWEEK(project_date) = ?", day).where(:project_date => Time.now.all_week).order('project_date desc').first
end
#Time.now.all_week assumes you're working with Rails 3.2

MySQLドキュメントのDATEOFWEEK()を見てください

あなたはでテストすることができます

for pj in @project
  p pj.project_date if pj.project_date #nil if no project found
end
于 2012-07-05T19:17:02.840 に答える