Ruby 1.9.3中增加了
我创建了一个rake任务,其中有一行
number = rand(1..10)
当我在我的开发机器上运行这个时,一切都很好,然而,当我在Heroku上运行它时,我返回了一个错误
rake aborted!
can't convert Range into Integer
/app/lib/tasks/sample_data.rake:57:in `rand'
我应该注意到,在rake任务的早期,我运行了rand(111)
。我不得不假设问题是由我为rand
设置了一个起点和终点以供选择引起的。
因此,最大的问题是,为什么Heroku将rand
视为一个范围,而不是一个整数,我该如何解决这个问题?
rand()
中的Range支持。您可能在Heroku上运行1.9.2(默认值)。通过在Gemfile中添加ruby "1.9.3"
,您可以在Heroku上运行1.9.3。
- http://www.ruby-doc.org/core-1.9.2/Kernel.html#method-i-rand
- http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-rand