【发布时间】:2015-02-20 01:59:17
【问题描述】:
我正在制作一个 Rails 应用程序,该应用程序依赖于基于我从网站抓取中获得的 CSV 文件的数据库。我想将 CVS 文件导入数据库。我生成了一个模型,如下所示。
class Challenge < ActiveRecord::Base
end
还有我的迁移文件:
class CreateChallenges < ActiveRecord::Migration
def change
create_table :challenges do |t|
t.string :location
t.string :name_source
t.string :location_name
t.string :name_text
t.string :restaurant_text
t.string :restaurant
t.string :location_title
t.string :description
t.string :name
t.string :state
t.timestamps null: false
end
end
end
还有我的 Rakefile:
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__)
require 'csv'
require 'Models::Challenge.rb'
Rails.application.load_tasks
csv_text = File.read('db/Vancouver.csv', :encoding => 'iso-8859-1')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
Challenge.create!(row)
end
当我运行 rake import 或 bundle exec rake import:challenge 时,我收到以下错误:
rake aborted!
LoadError: cannot load such file -- Models::Challenge.rb
/Users/kamilkhan/Documents/CPSC 310/Project/Rubies-In-The-Rough/Rakefile:6:in `require'
/Users/kamilkhan/Documents/CPSC 310/Project/Rubies-In-The-Rough/Rakefile:6:in `<top (required)>'
(See full trace by running task with --trace)
--trace 给了我:
rake aborted!
LoadError: cannot load such file -- Models::Challenge.rb
/Users/kamilkhan/Documents/CPSC 310/Project/Rubies-In-The-Rough/Rakefile:6:in `require'
/Users/kamilkhan/Documents/CPSC 310/Project/Rubies-In-The-Rough/Rakefile:6:in `<top (required)>'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/rake_module.rb:28:in `load'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/rake_module.rb:28:in `load_rakefile'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/application.rb:689:in `raw_load_rakefile'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/application.rb:94:in `block in load_rakefile'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/application.rb:93:in `load_rakefile'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/application.rb:77:in `block in run'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/application.rb:75:in `run'
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/bin/rake:33:in `<main>'
关于如何解决这个问题的任何想法?我对 Ruby 和 Rails 很陌生,所以请 ELI5
提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby csv activerecord