ruby-on-rails - 这句话有什么问题,我收到“无效日期”错误
问题描述
我正在构建一个时间线图表,所以当我为它制作一个数组时,出现了“无效日期”的问题,也许我搞砸了 .map,因为我不太了解 ruby
status_and_date = StatusVersion.where(requeat_id:812).pluck(status_id, :date).reverse
@requests_timeline = status_and_date.map do |r,s|
s=s.to_s
for i in 0..s.length-1
label = r.to_s
start_date = s[i].to_date
end_date = s[i+1].to_date
[label, start_date, end_date]
end
end
@requests_timeline
解决方案
假设status_id
是增量 1。我猜问题出在你的循环中,如果那样的i == s.length -1
话,
你可以s[i+1]
通过使用下面的代码修改循环来捕获错误以查看详细错误nil
begin ... rescue
for i in 0..s.length-1
begin
label = r.to_s
start_date = s[i].to_date
end_date = s[i+1].to_date
[label, start_date, end_date]
rescue
puts "i - #{i}"
puts "s[i] - #{s[i]}"
puts "s[i+1] - #{s[i+1]}"
end
end