レール2.3.4
私はグーグルを検索しましたが、私のジレンマに対する答えが見つかりませんでした。
この議論のために、私は2つのモデルを持っています。ユーザーとエントリ。ユーザーは多くのエントリを持つことができます(毎日1つ)。
エントリには値とsent_at日付があります。
BY DAYOFWEEKのユーザーのエントリの平均値を照会して表示したいと思います。したがって、ユーザーが過去3週間の値を入力した場合、日曜日、月曜日などの平均値を表示したいと思います。MySQLでは、次のようになります。
SELECT DAYOFWEEK(sent_at) as day, AVG(value) as average FROM entries WHERE user_id = ? GROUP BY 1
そのクエリは、ユーザーが少なくとも1つのエントリを持っていた日数に応じて、0〜7個のレコードを返します。
find_by_sqlを見ましたが、Entryを検索しているときに、Entryオブジェクトを返したくありません。代わりに、最大7日と平均の配列が必要です...
また、ユーザーがログインしたときにこれをユーザーモデルにロードして、ダッシュボードに表示できるようにするため、このパフォーマンスについて少し心配しています。任意のアドバイス/ポインタを歓迎します。私はRailsに比較的慣れていません。