如何将循环限制为一定数量的重复?

时间:2014-01-22 18:57:15

标签: ruby-on-rails ruby loops

在我的Rails应用程序中,我有这个循环:

dates = []
loop do
  date = start_date += increment
  break if date > Date.today
  dates << date
end

如何将此循环限制为一定数量的重复?

start_date在我的应用程序中是动态的,user可以通过插入例如0000-00-00轻松地使我的应用程序瘫痪{{1}}会导致数百万次重复。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

你可以保留重复的计数器,并在达到阈值时立即停止循环。

例如,将循环限制为 100次迭代

dates = []
counter = 0

while counter < 100 # threshold
  date = start_date += increment
  break if date > Date.today
  dates << date
  counter += 1
end

否则,如果start_date在特定时间范围内,则只能进入循环:

dates = []
loop do
  date = start_date += increment
  break if date > Date.today
  dates << date
end if start_date >= Date.today - 3.months.ago