Cannot convert Range to Integer (Ruby on Rails)

I use Ruby (1.9.3) and Rails (3.2.2). I have a task file that contains a bunch of fake data that will be populated in my database.

Here is the part of the task that, in my opinion, is causing the problem.

#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 

It works fine with dev, but only this part is not running in the production database. I am using gem 'sqlite3', '1.3.5' on dev. and

gem 'pg', '0.12.2' by production (heroku)

When i started

 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.** 

Any ideas what could be the problem?

EDIT: bid_amount decimal data type

+7
source share
1 answer

Your version of the ruby ​​version is not 1.9.3. This is probably 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 

Set ruby ​​1.9.3 to production, and the rand method should work as expected.

+7
source

All Articles