-1

葉を作るためにdays.thisをループするためのコードがあります。列のサインインと出席時のサインアウトが自動的に開始日から開始し、終了日で終了するようにしたい。

exp I input :
startdate: 2012-11-08 01:30:00
enddate: 2012-11-10 01:30:00
i want output like this: 

2012-11-08 01:30:00
2012-11-09 01:30:00
2012-11-010 01:30:00

 for i in 0..((@leafe.enddate - @leafe.startdate).to_i)
                 @attendance = Attendance.new

                 @attendance.signin = '2012-11-08 01:30:00' #value must chang automatically
                 @attendance.signout = '2012-11-08 10:30:00'#value must chang automatically
                 @attendance.user_id = @leafe.user_id
                 @attendance.save
            end

前に感謝します

4

2 に答える 2

0

なぜ for ループを使用するのですか? Javaコードのようです。次のような範囲で代わりにブロックを使用します。

(Time.now.beginning_of_day.to_i..Time.now.to_i).step(3600) do |n|#step one hour for example
  @attendance = Attendance.new
  .......
  @attendance.signin  = @leafe.startdate
  @attendance.signout = @leafe.startdate + n # u can change time interval to any what you want

end
于 2012-11-08T10:44:03.537 に答える
0

startdate が Date 型の場合、

@attendance.signin = @leafe.startdate+i
@attendance.signout = @leafe.startdate+i
于 2012-11-08T07:31:37.560 に答える