在我的Rails应用程序中,我有这个循环:
dates = []
loop do
date = start_date += increment
break if date > Date.today
dates << date
end
如何将此循环限制为一定数量的重复?
start_date
在我的应用程序中是动态的,user
可以通过插入例如0000-00-00
轻松地使我的应用程序瘫痪{{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