2014-10-07 129 views
0

我试图获取所有按日期分组的事件的哈希值,因此它具有[y-m-d] =>“event.title”或类似的东西。如何从数据库表中获取哈希值

这里有一些事情我做过尝试,但似乎并没有工作:

@events = Event.all 
@events_by_date = @events.group_by{ |e| e.created_at.beginning_of_month } 
            #&:day) 
            #&:created_at).day 
            #&:edate) 
         #.group_by(&:group_by_criteria).map {|k,v| [k, v.length]}.sort 
         #.group("date_format(created_at, '%Y%m%d %H')").count 

我已经尝试了一些东西,在模型是这样的:

def group_by_criteria 
    created_at.to_date.to_s(:db) 
end 
def day 
    where(created_at.strftime('%Y-%W-%D') 
end 

能有人帮我学习如何从数据库中获取哈希值?

顺便说一句,这个工程:events.group_by(&:created_at)

但它说:enter image description here

,并且不认为这组由日期和时间?我只是想在年份,月份日将所有内容分组,除了时间戳的其余部分。

+0

将错误和结果粘贴为纯文本比难以阅读的截图好得多。 – tadman 2014-10-07 15:37:45

+0

对不起,以下是重要部分:'{Mon,06 Oct 2014 20:38:00 UTC +00:00 => [#] ...}'重要部分该键包含DATETIME元素的TIME部分。我想排除TIME部分,因为我相信这就是为什么我的日历没有填充我的活动 – 2014-10-07 15:42:24

回答

1

如果你想群体性事件的日期在一起,你要的是这样的:

Event.all.group_by(&:created_date) 

如果这就是你添加到您的事件模型的方法:

def created_date 
    self.created_at.to_date 
end 

记住events是一家集对于事件模型,它没有created_at方法,只有该集合的单个元素可以执行。 group_by方法评估每个元素的方法调用。

+0

哦,对!谢谢! – 2014-10-07 15:57:44