我正在通过Ruby on Rails 3将数据从CSV文件导入到MySQL数据库中。客户模型已经创建。另外,下面的脚本将生成puts行[2]并正确放置行[3]。当我为customers.warranty_part_no和warranty_part_desc的数据库字段添加分配时,会生成下面的错误。无法在Ruby on Rails中将csv导入到MySQL数据库3
csv = CSV.read(file, col_sep: ",", headers: false)
c = Customer.new
csv.each do |row|
c.warranty_part_no = row[2],
c.warranty_part_desc = row[3]
end
这是我得到的错误。
uninitialized constant Customer (NameError)
一些测试后,我觉得这个问题是因为这样不被具有较大的Rails应用程序,以便客户类从未被创建执行customer.rb模型我从命令行运行此脚本。我如何从命令行运行此脚本并利用ActiveRecord或activerecord-import?如果这不可行,我该如何为它创建一个路线或从应用程序的视图中调用它?
我在Ruby 1.9.2和Rails 3.2.2上。提前感谢您的任何建议。
为什么不使用MySQL的LOAD DATA INFILE ...?见:http://dev.mysql.com/doc/refman/5.1/en/load-data.html – 2012-07-16 17:22:45
是的,我用它来完成其他几项任务。我只保留这个文件中的一些字段。此外,这也将成为屏幕上的一种形式。 – analyticsPierce 2012-07-16 17:27:35
您是否在运行导入之前尝试加载应用程序('require'config/environment'')?丑陋的,但应该让你的模特开火... – rjz 2012-07-18 17:27:31