ruby - 无法将范围转换为整数(Ruby on Rails)

标签 ruby ruby-on-rails-3 heroku range

我正在使用 Ruby (1.9.3) 和 Rails (3.2.2)。我有一个任务文件,其中包含一堆要填充到我的数据库中的假数据。

这是我认为导致问题的部分任务

#Create random Tender and populate the db
     20.times do |n|
      title  = "#{Faker::Company.bs()} tender "
      company_name = Faker::Company.name
      opening_date=Time.at(rand * Time.now.to_i)
      closing_date=Time.at(opening_date + ( 8*7*24*60*60)) #add 8 weeks to the deadline
      bid_amount= rand(10000..100000)
      description=Faker::Lorem.paragraph(sentence_count = 3)


      Tender.create!(title: title,
                   company_name: company_name,
                   opening_date: opening_date,
                   closing_date: closing_date,
           bid_amount: bid_amount    ,
           bid_amount: bid_amount    ,
           description: description )
    end

在 dev 上运行良好,但只有上述部分未在生产数据库上执行。我在 dev 上使用 gem 'sqlite3', '1.3.5'。和

gem 'pg', '0.12.2' 生产环境 (heroku)

当我运行时

git push heroku
$ heroku pg:reset SHARED_DATABASE --confirm myapp
$ heroku run rake db:migrate
$ heroku run rake db:populate

db:populate throws an error that says **can't covert Range to Integer.**

知道问题出在哪里吗?

编辑 bid_amount 的数据类型是decimal

最佳答案

您的生产 ruby​​ 版本不是 1.9.3。大概是1.8.7

$ ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
$ irb
>> rand(10000..100000)
TypeError: can't convert Range into Integer
    from (irb):1:in `rand'
    from (irb):1
>> exit
$ rvm use 1.9.3
Using /Users/chirantan/.rvm/gems/ruby-1.9.3-p0
$ irb
1.9.3p0 :001 > rand(10000..100000)
 => 37036 

在生产环境中安装 ruby​​ 1.9.3,rand 方法应该按预期工作。

关于ruby - 无法将范围转换为整数(Ruby on Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054177/

相关文章:

java - 来自 Java 的 Ruby 中的 HMAC

ruby - 在类中调用类方法

ruby - 为什么我的 RSpec 规范运行了两次?

jquery - 所见即所得的 jquery 编辑器分成两个文本区域

ruby - 如何在 ruby​​ 中执行 attr_accessor_with_default?

go - go中的dialogflow webhook

ruby-on-rails - 使用 RVM 成功安装 Ruby 1.9.2,但现在恢复到 1.8.7

ruby - 以 DRY 方式跨 rspec 规范共享工厂

heroku - 如何使用文件内容设置 Heroku 配置变量

ruby-on-rails - Rails 3/Heroku/Memcached - 未命中/未命中、存储/新鲜