2009-09-01 104 views
0

平均引用這篇文章:Ruby on Rails的每

ruby on rails average per day

我得到每天的平均水平,這工作正常。到現在爲止的一個月切換...

我有這樣的代碼

score = (7.days.ago.to_date.to_s(:db)..Date.today.tomorrow.to_s(:db)).map{|dt| [dt, ave_score[dt] || 0]} 

其中一期工程,但現在一個月切換,它不存在的日期回來,像2009- 08-32至2009-08-99和2009-09-00。全部在陣列中。我如何刪除實際不存在的日期。

回答

0

我想通了,我不知道這是否是做的最好的辦法,所以如果別人想補充的東西去它:

arr_count = 0 
length = score.length 
while arr_count < length 
    begin 
     score[arr_count][0].to_date 
     arr_count = arr_count + 1 
    rescue 
    @score.delete_at(arr_count) 
    length = length - 1 
    end 
end 
+0

當你嘗試我發佈的代碼時發生了什麼? – 2009-09-02 01:11:44

+0

它可能沒有嘗試過。人們只有在他們想聽到的東西時纔會使用。 – nitecoder 2009-09-02 02:11:54

1

嘗試等待撥打電話到to_s

score = (7.days.ago.to_date..Date.today.tomorrow).map{ |dt| d = dt.to_s(:db); [d, ave_score[d] || 0] }