我想在 Rails 种子中获取从开始到结束之间的日期范围。
当我尝试生成日期范围 ((Date.today - 10)..Date.today) 时发生异常。
异常消息:范围值错误
但在 Rails 控制台中一切正常。
我认为 ActiveSupport 对此是合理的(我的调试器告诉我的)。
集会 3.1.3
这是怎么回事?
最佳答案
您可以通过拆分两条边并像这样检查它们的类来了解发生了什么:
Date.today.class # => Date
(Date.today - 10).class # => Date
((Date.today - 10)..Date.today).each {|d| puts d.class} # => 10 Date works for me
您遇到的错误是这样的:
('a'..10) # => ArgumentError: bad value for range
你能发布范围的 2 个边缘的类吗?
(Date.today - 10).class => ?
Date.today.class => ?
您是否在您的 Rails 环境中覆盖了任何类?它在 irb
中有效吗?
PS:当你在 rails 中时,你可以使用 10.days.ago
但你需要使用 to_date
因为它是一个 ActiveSupport::TimeWithZone
关于ruby-on-rails - ruby/rails 中的日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10171111/