我在@dailylogs中有一组日期记录。
假设我在本月的第一天有一行(每日日志)。当我为15号添加新记录时,如何在每天之间添加空白条目,以便每月的每一天都有一个条目。
我可以计算两个日期之间的天数,以便在@dailylogs中循环检查两者之间的日期是否有条目....但我不能解决它。< / p>
由于
答案 0 :(得分: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)>]
答案 1 :(得分: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。