导轨 2.3.4
我搜索了谷歌,并没有找到我的困境的答案。
对于这个讨论,我有两个模型。用户和条目。用户可以有多个条目(每天一个)。
条目具有值和 sent_at 日期。
我想按星期几查询并显示用户条目的平均值。因此,如果用户输入了过去 3 周的值,我想显示周日、周一等的平均值。在 MySQL 中,这很简单:
SELECT DAYOFWEEK(sent_at) as day, AVG(value) as average FROM entries WHERE user_id = ? GROUP BY 1
该查询将返回 0 到 7 条记录,具体取决于用户至少拥有一个条目的天数。
我查看了 find_by_sql,但是在搜索 Entry 时,我不想返回 Entry 对象;相反,我需要最多 7 天和平均值的数组...
另外,我有点担心它的性能,因为我们想在用户登录时将它加载到用户模型中,以便它可以显示在他们的仪表板上。欢迎任何建议/指点。我对 Rails 比较陌生。