2017-01-27 27 views
-1

我在@dailylogs中有一組日期記錄。如何填寫表中的日期條目之間的空白

可以說我有一排(dailylog)爲本月1日。當我爲15日添加新記錄時,請如何在每天之間添加空白條目,以便每月的每一天都有條目。

我可以計算兩個日期之間的天數,所以通過@dailylogs循環來檢查兩天之間是否有條目....但我只是不能解決它。

感謝

+0

我在最後這樣做了。 – Simonp27

回答

0

如果你有兩個Date對象是非常簡單的。

require 'date' 

from = Date.new(2017, 1, 1) 
to = Date.new(2017, 1, 5) 

from.step(to).to_a 
=> [#<Date: 2017-01-01 ((2457755j,0s,0n),+0s,2299161j)>, #<Date: 2017-01-02 ((2457756j,0s,0n),+0s,2299161j)>, #<Date: 2017-01-03 ((2457757j,0s,0n),+0s,2299161j)>, #<Date: 2017-01-04 ((2457758j,0s,0n),+0s,2299161j)>, #<Date: 2017-01-05 ((2457759j,0s,0n),+0s,2299161j)>] 
0

我做了這樣的結尾:

x = 1 
day_range.times do 
    if Dailylog.search_day(date_today.month, date_today.year, x, user).blank? 
    create_date = DateTime.new(date_today.year, date_today.month, x) 
    Dailylog.create(date: create_date, miles: "0", locations: "nil", user_id: user) 
    end 
    x+=1 
end 

其用於:

def Dailylog.search_day(month, year, day, user) 
where("cast(strftime('%m', date) as int) = ?", month) 
.where("cast(strftime('%Y', date) as int) = ?", year) 
.where("cast(strftime('%d', date) as int) = ?", day) 
.where("user_id = ?", user) 

它的工作原理,但作爲一個初學者高興能如果能糾正做得更好。

Thx。

相關問題