gpt4 book ai didi

mysql - Rails - 如何从数据库中选择数据并按天打印出来?

转载 作者:行者123 更新时间:2023-11-29 07:44:43 26 4
gpt4 key购买 nike

我试图想出一个想法,如何以以下格式从数据库打印数据:

January 25
- record 1
- record 2
- record 3
- record 4
- record ...

January 26
- record 1
- record 2
- record 3
- record 4
- record ...

...

有什么方法可以用ActiveRecord来做到这一点吗?我唯一的想法是从数据库中获取数据(@data = Model.order(created_at DESC).limit(50)),然后在相应的 View 中拥有一个帮助变量,我将在其中保留当前数据,并且当在通过 @data 的循环中记录的日期与帮助变量中的日期不同时,我会将这个新日期保存到帮助变量中并继续循环。

但这不是很清晰和优雅,并且可能会出现一个问题,我将打印出日期,并且不会打印出来自 @data 的数据,如下所示:

1 月 25 日 - 记录1 - 记录2 - 记录3 - 记录4 - 记录...

January 26
- record 1
- record 2
- record 3
- record 4
- record ...

January 27
[nothing here]

解决这个问题的最佳方法是什么?

提前谢谢您。

最佳答案

您想要的转换称为分组。有一个special method对于 Ruby 来说。对于你的情况,你可以这样做

Model.order(created_at: :desc).limit(50).group_by { |record| record.created_at.to_date }

另外,请注意order(created_at: :desc);它是 SQL 的语法糖。

关于mysql - Rails - 如何从数据库中选择数据并按天打印出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28138270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com