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选择正确的转换语法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |