基本的に私は、ユーザーが今から2年後までの任意の日のタイムスロットを選択できるアプリを持っています。私は、データベースにレコードを追加するために毎日実行されるrakeタスクを作成しているので、明日も2年分のタイムスロットの選択肢があります。
私の現在のロジックでは、うるう年が発生したときに何が起こるかについて興味があります。うるう年を正しく処理するために、これをより堅牢にする方法はありますか?完全に見落とされる日、または重複する日になるのではないかと心配しています。
task :generate_timeslots => :environment do
startDate = Time.now.to_date + 2.years
endDate = Time.now.to_date + 2.years
startDate.upto(endDate).each do |d|
5.times do
timeslot = Timeslot.create
timeslot.location_id = 1
timeslot.timeslot = "#{d} 09:00:00"
timeslot.save
timeslot = Timeslot.create
timeslot.location_id = 1
timeslot.timeslot = "#{d} 11:00:00"
timeslot.save
timeslot = Timeslot.create
timeslot.location_id = 1
timeslot.timeslot = "#{d} 13:00:00"
timeslot.save
timeslot = Timeslot.create
timeslot.location_id = 1
timeslot.timeslot = "#{d} 15:00:00"
timeslot.save
end
end
end