Ruby on rails NameError:尝试导入CSV时Rails应用程序中未初始化的常量

Ruby on rails NameError:尝试导入CSV时Rails应用程序中未初始化的常量,ruby-on-rails,ruby,csv,activerecord,Ruby On Rails,Ruby,Csv,Activerecord,我正在制作一个rails应用程序,它依赖于一个基于CSV文件的数据库,这个CSV文件是我从一个网站抓取的。我想将CVS文件导入数据库。我生成了一个模型,如下所示 class Challenge < ActiveRecord::Base end 当我运行rake import或bundle exec rake import:challenge时,我得到以下错误: rake aborted! LoadError: cannot load such file -- Models::Challe

我正在制作一个rails应用程序,它依赖于一个基于CSV文件的数据库,这个CSV文件是我从一个网站抓取的。我想将CVS文件导入数据库。我生成了一个模型,如下所示

class Challenge < ActiveRecord::Base
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)
rake中止!
LoadError:无法加载此类文件--Models::Challenge.rb
/用户/kamilkhan/Documents/CPSC 310/Project/Rubies In The Rough/Rakefile:6:In'require'
/用户/kamilkhan/Documents/CPSC 310/Project/Rubies In The Rough/Rakefile:6:In`'
(通过使用--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>'
rake中止!
LoadError:无法加载此类文件--Models::Challenge.rb
/用户/kamilkhan/Documents/CPSC 310/Project/Rubies In The Rough/Rakefile:6:In'require'
/用户/kamilkhan/Documents/CPSC 310/Project/Rubies In The Rough/Rakefile:6:In`'
/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:在“标准异常处理”中
/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:在“标准异常处理”中
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/application.rb:75:在“运行”中
/Users/kamilkhan/.rvm/rubies/ruby-2.2.0/bin/rake:33:in`'
有没有办法解决这个问题?我是Ruby和Rails的新手,所以请


提前谢谢

Rake可以为您自动加载所有模型等。此外,您应该将该任务放入它自己的文件中,而不是rails使用的Rakefile

试着这样做:

lib/tasks/import.rake(任何以.rake结尾的文件名都有效)


然后,您应该能够运行
rake import
来运行该任务
environment
告诉rake加载Rails堆栈,以便您可以使用模型等。

rake可以自动为您加载所有模型等。此外,您应该将该任务放入它自己的文件中,而不是rails使用的Rakefile

试着这样做:

lib/tasks/import.rake(任何以.rake结尾的文件名都有效)


然后,您应该能够运行
rake import
来运行该任务
environment
告诉rake加载Rails堆栈,以便您可以使用模型等。

rake可以自动为您加载所有模型等。此外,您应该将该任务放入它自己的文件中,而不是rails使用的Rakefile

试着这样做:

lib/tasks/import.rake(任何以.rake结尾的文件名都有效)


然后,您应该能够运行
rake import
来运行该任务
environment
告诉rake加载Rails堆栈,以便您可以使用模型等。

rake可以自动为您加载所有模型等。此外,您应该将该任务放入它自己的文件中,而不是rails使用的Rakefile

试着这样做:

lib/tasks/import.rake(任何以.rake结尾的文件名都有效)

然后,您应该能够运行
rake import
来运行该任务
environment
告诉rake加载Rails堆栈,以便使用模型等

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)
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>'
desc "Imports stuff from CSV"
task :import => :environment do
  require 'csv'

  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
end