2013-06-12 30 views
0

我正在构建一个简单的应用程序,我想向管理员展示一些简单的统计数据。我想知道是否有可能从数据库中获取使用datamapper在同一日期创建的对象计数数组,还是必须手动检查记录并对它们进行计数?数据映射器 - 在特定日期上载对象数

对象具有created_at属性。

回答

0

试一试: -

假设您想计算在特定日期创建的用户。

User.group('date(created_at)').count 

    => {"2013-05-20"=>66, 
"2013-05-07"=>46, 
"2013-05-17"=>9, 
"2013-05-13"=>28, 
"2013-05-22"=>22, 
"2013-05-15"=>43, 
"2013-05-08"=>32, 
"2013-06-12"=>2, 
"2013-05-28"=>22, 
"2013-05-16"=>35, 
"2013-05-09"=>33, 
"2013-05-10"=>132, 
"2013-05-21"=>5, 
"2013-05-14"=>38, 
"2013-05-11"=>4} 
+0

其实我想指望所有的照片created_at所有的日期......这样我就可以向用户显示每天上传多少照片...我设法解决这个问题,但是谢谢你的回答 –

+0

@AntonioNovoselnik我已经更新了我的答案。 –

0

所以我设法解决这个问题,我不知道这是否是正确的做法,但它的工作原理

days = Array.new 
count = Array.new 

photos_per_day = Photo.aggregate(:all.count, :upload_date) 
photos_per_day.each do |ppd| 
    count.push(ppd[0]) 
    days.push(ppd[1].day.to_s + " " + Date::MONTHNAMES[photo[1].month]) 
end 

{:days => days, :count => count}.to_json