いくつかの助けを借りて、プロジェクト内の各日の単語カウントを表示し、それをほぼ 1 つのデータベース クエリに減らす方法を採用することができました。これが方法です
def project_range(project, start, finish, &blk)
words = project.words.where(:wrote_on => start..finish)
word_map = words.index_by(&:wrote_on)
for day in start..finish
word_count = word_map[day] ? word_map[day].quantity : 0
blk.call(day, word_count)
end
end
元の質問は次のとおりです。
ただし、ユーザーが毎日単語カウントを入力する方法を変更したいと考えています。ただし、1 日に 1 つだけではなく、1 日に複数のカウントを入力できるようにしたいと考えています。ただし、このメソッドは、入力された最後の日の単語数のみを返します。その特定の日のすべての単語数ではありません。
index_by を group_by に変更してみましたが、 の未定義メソッド エラーが発生しましたquantity
。それで、私の質問は...たとえば、2012 年 5 月 4 日のように 2 つのオブジェクトがある場合、同じ日に複数のエントリを処理するにはどうすればwrote_on
よいですか?