ruby-on-rails - Rails 2.3 和 Rails 3.2 'weeks' 方法的区别

标签 ruby-on-rails ruby

在 ActiveSupport 日期处理方面,我注意到 Rails 2 和 Rails 3 之间存在一些不同的行为。

当我在 Rails 2.3 应用程序中运行以下代码时,它会按预期运行并一次输出一周的日期。

>> first = Date.today
=> Fri, 23 Mar 2012
>> last = Date.today + 2.months
=> Wed, 23 May 2012
>> first.step(last, 1.week) { |date| puts date }
2012-03-23
2012-03-30
2012-04-06
2012-04-13
2012-04-20
2012-04-27
2012-05-04
2012-05-11
2012-05-18

当我在 Rails 3 应用程序中尝试相同的代码时,我得到以下结果。

>> first = Date.today
=> Fri, 23 Mar 2012
>> last = Date.today + 2.months
=> Wed, 23 May 2012
>> first.step(last, 1.week) { |date| puts date }
Mar 23, 2012
TypeError: expected numeric

问题似乎在于 Rails 3 现在如何处理 .weeks 方法,Rails 2 输出如下

>> 1.week
=> 7 days

Rails 3 输出的地方

>> 1.week
=> 604800

任何人都可以解释这里发生了什么,以及我如何在 Rails 3 中一次一周地巧妙地迭代日期范围。

最佳答案

不知道为什么它不起作用,但这似乎:

(Date.today..(Date.today + 30)).step(7)

关于ruby-on-rails - Rails 2.3 和 Rails 3.2 'weeks' 方法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9834763/

相关文章:

ruby - 我如何在 Ruby 中编写一个正则表达式来确定一个字符串是否满足这个条件?

ruby-on-rails - 当我尝试添加表单时 FrontPages#home 中出现 NoMethodError

ruby - 什么相当于 Lodash 在 Ruby 中的 get 和 set?

ruby - 如何像在 Prime 类中一样在 Ruby 中创建默认实例?

ruby-on-rails - 用于 postgresql 的 Ruby on Rails : How can I edit database. yml?

ruby-on-rails - 在更改我的开发数据库之前我应该​​知道什么?

ruby-on-rails - SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B : certificate verify failed

ruby-on-rails - 使用 redis 作为 rails 应用程序的数据库来处理大量 api 请求

javascript - 在 Rails 中实现每页 JavaScript 的好方法是什么?

ruby-on-rails - 如何使用 Grape 和 MongoDB 在 Ruby on Rails 中正确测试 'post'(创建)方法