2015-03-13 106 views
0

試圖從表中的日期字段(而不是created_at或updated_at)中找到唯一的月份和年份,並使用這些值填充兩個選擇框,用戶可以從中選擇哪些年份和/或者他們想要報告的月份。從本質上講,我只想給用戶提供有記錄的年份和月份。我使用Postgresql作爲我的分貝。從日期查找唯一的月份和年份

我目前得到在我的控制器使用此代碼值:

@list_of_years = @subset.pluck(:usg_date).map{|y| y.year}.uniq.sort 
@list_of_months = @subset.pluck(:usg_date).map{|m| m.month}.uniq.sort 

本工程以它帶給我的價值的程度,而不是在我想要的格式,我想不出如何使用它們來填充選擇框。例如,對於一個月,我想顯示一月,二月,三月,而不是1,2,3,等

回答

0

試試這個:

Model.select("created_at").map{ |i| i.created_at.year }.uniq

要獲得每月使用的名稱你必須使用Date::MONTHNAMES(首先你可能需要require 'date') 如:

LeaveSystem.select("created_at").map{ |i| Date::MONTHNAMES[i.created_at.month] }.uniq 

結果:["December", "February", "March"]

+0

這給了我幾個月和幾年,只做了一些修改'@list_of_years = Usage.select(:usg_date).map {| i | i.usg_date.year} .uniq和@list_of_months = Usage.select(:usg_date).map {| i |日期:: ABBR_MONTHNAMES [i.usg_date.month]} .uniq'然而,月份沒有正確排序(按日曆順序)。如果我添加排序,它們按字母順序排序。 – Kurtismonger 2015-03-18 13:59:22

相關問題