无法在Ruby on Rails 3中将csv导入MySQL数据库
发布时间:2020-12-17 03:36:04 所属栏目:百科 来源:网络整理
导读:我正在通过 Ruby on Rails 3将数据从CSV文件导入 MySQL数据库.客户模型已经创建.此外,下面的脚本将生成puts row [2]并正确放置row [3].当我为customers.warranty_part_no和warranty_part_desc的数据库字段添加分配时,会产生以下错误. csv = CSV.read(file,co
我正在通过
Ruby on Rails 3将数据从CSV文件导入
MySQL数据库.客户模型已经创建.此外,下面的脚本将生成puts row [2]并正确放置row [3].当我为customers.warranty_part_no和warranty_part_desc的数据库字段添加分配时,会产生以下错误.
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模型,因此永远不会创建Customer类.如何从命令行运行此脚本并利用ActiveRecord或activerecord-import?如果那是不可能的,我该如何为它创建路径或从应用程序中的视图调用它? 我在Ruby 1.9.2和Rails 3.2.2上.提前感谢任何建议. 解决方法
正如您所知,问题在于您的Rails环境未加载.您可以通过包含Customer模型,active_record以及使用database.yml建立连接,在独立脚本中执行此操作.
但是,有一种更简单的方法.像这样创建一个rake任务: namespace :data do desc "Import data from CSV" task :import => :environment do #Your script here end end => :环境告诉rake加载Rails,这样你的数据库连接和所有模型就可供你使用了. 使用rake数据调用它:import,如果你想要生产环境,添加RAILS_ENV = production. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |