gpt4 book ai didi

ruby-on-rails - 循环年+月

转载 作者:数据小太阳 更新时间:2023-10-29 07:47:35 26 4
gpt4 key购买 nike

我试图循环年月。如果 @user.created_at2015 年 11 月,那么我想得到这个输出:

November 2015
December 2015
January 2016
February 2016
March 2016

我尝试了以下方法:

Hash[(@user.created_at.month..Date.today.month).map { |month| [ month, 0 ] }].merge(...)

但是上面的代码返回

stack level too deep

因为它循环 11..3。我该如何解决这个问题?

最佳答案

如果你想计算即将到来的月份/年份,你总是可以使用 advance :

start = @user.created_at.to_date.beginning_of_month

Hash[(0..6).collect { |n| [ start.advance(months: n).month, 0 ] }]

这应该正确地跨越几天/几个月。您可能只想输入日期,而不仅仅是月份。

如果你想做“直到今天”,那么试试这个:

date = @user.created_at.to_date.beginning_of_month
stop = Date.today.beginning_of_month
hash = { }

while (date <= stop)
hash[date] = 0

date = date.advance(months: 1)
end

关于ruby-on-rails - 循环年+月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36163432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com