2014-10-07 128 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