加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 按创建日期的日期对rails记录组记录

发布时间:2020-12-17 02:44:21 所属栏目:百科 来源:网络整理
导读:所以我有一个模型,我想要检索记录,并按created_at字段的日期对它们进行分组.但created_at是一个日期时间字段,我只对日期部分感兴趣.所以我正在寻找类似2D数组的东西,第一层是以日期字符串为键的哈希,第二层是带记录的数组.我该怎么办? {"9/28/2012" = [reco
所以我有一个模型,我想要检索记录,并按created_at字段的日期对它们进行分组.但created_at是一个日期时间字段,我只对日期部分感兴趣.所以我正在寻找类似2D数组的东西,第一层是以日期字符串为键的哈希,第二层是带记录的数组.我该怎么办?

{
"9/28/2012" => [record,record,record],"9/29/2012" => [record,"9/30/2012" => [record,record]
}

除此之外,如果我希望将上述排列应用于从该模型中检索到的所有记录,我该怎么办呢?

解决方法

ActiveRecord组方法将满足您的需求.在您的情况下,问题将是使用created_at这是一个日期时间,您的约束是按日期分组.由于将日期时间转换为日期是特定于数据库的,因此代码也需要是特定于数据库的.

对于MySql,您可以:

Model.group("date(table_name.created_at)")

对于SQLite,您可以:

Model.group("strftime('%Y-%m-%d',table_name.created_at)")

而对于PostgreSQL:

Model.group("table_name.created_at::date")

遗憾的是,此代码不可移植,但这对您来说无关紧要.如果是这样,您始终可以构建一个包装器方法,根据您的DBMS选择正确的转换语法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读