Tôi đang sử dụng Ruby (1.9.3) và Rails (3.2.2). Tôi có tệp tác vụ chứa một nhóm dữ liệu giả được điền vào cơ sở dữ liệu của mình.Không thể chuyển đổi Phạm vi thành Số nguyên (Ruby on Rails)
Dưới đây là một số phần của nhiệm vụ mà tôi tin là gây ra vấn đề
#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
Nó hoạt động tốt với dev nhưng chỉ có phần trên không được thực hiện trên cơ sở dữ liệu sản xuất. Tôi đang sử dụng gem 'sqlite3', '1.3.5'
trên dev. và
gem 'pg', '0.12.2'
vào sản xuất (Heroku)
Khi tôi chạy
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.**
Bất kỳ ý tưởng những gì các vấn đề có thể được?
EDIT: Kiểu dữ liệu của BID_AMOUNT là decimal
Thú vị, tham chiếu hàm rand() không đề cập đến nó chấp nhận một phạm vi nào cả .. http://ruby-doc.org/core-1.9.3/Kernel.html#method-i-rand – MBHNYC
Nếu bạn đọc dòng đầu tiên trong mô tả đó, nó nói "Nếu max là Range, trả về một số pseudorandom nơi range.member (number) == true". – Chirantan
Điều này không nói (và không chấp nhận đúng) cho 1.8.7 http://ruby-doc.org/core-1.8.7/Kernel.html#method-i-rand – Chirantan