Estoy usando Ruby (1.9.3) y Rails (3.2.2). Tengo un archivo de tareas que contiene un montón de datos falsos para completar en mi base de datos.No se puede convertir el rango en enteros (Ruby on Rails)
Aquí es una parte de la tarea que yo creo que está causando el problema
#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
Funciona bien con dev, pero sólo la parte de arriba no se ejecuta en la base de datos de producción. Estoy usando gem 'sqlite3', '1.3.5'
en dev. y
gem 'pg', '0.12.2'
sobre la producción (heroku)
Cuando corro
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.**
Cualquier idea cuál podría ser el problema?
EDIT: El tipo de datos de BID_AMOUNT es decimal
Interesante, la función de referencia rand() no menciona que acepta un rango en absoluto .. http://ruby-doc.org/core-1.9.3/Kernel.html#method-i-rand – MBHNYC
If lee la primera línea en esa descripción, dice "Si max es Range, devuelve un número pseudoaleatorio donde range.member (number) == true". – Chirantan
Esto no dice (y no acepta correctamente) para 1.8.7 http://ruby-doc.org/core-1.8.7/Kernel.html#method-i-rand – Chirantan