在ROR中将CSV文件导入SQL数据库

时间:2017-09-13 21:32:17

标签: ruby-on-rails csv

我搜索了类似的线程,但到目前为止没有运气,所以我正在构建一个RoR应用程序,我已经创建了数据库,我只想将css文件导入我的数据库,下面是我有错误的文件我得到了:

schema.rb:

array(2) { ["error"]=> string(21) "redirect_uri_mismatch" ["error_description"]=> string(11) "Bad Request" }

我还有一个rake任务文件(import.task):

ActiveRecord::Schema.define(version: 20170913210926) do
  create_table "items", force: :cascade do |t|
    t.string "title"
    t.string "description"
    t.string "author"
    t.string "tags"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end
end

所以当我在终端中运行rake import.task时出现了以下错误:

require 'csv'
csv_text = File.read('/Path/to/csv/Item.csv')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
  item.create!(row.to_hash)
end

1 个答案:

答案 0 :(得分:1)

你的rake任务看起来更像是普通的ruby脚本而不是rake任务。如果您想使用rake,请尝试以下方法:

require 'csv'

namespace :import do
  desc 'Imports csv data into db'
  task from_csv: :environment do
    csv_text = File.read('/Path/to/csv/Item.csv')
    csv = CSV.parse(csv_text, :headers => true)
    csv.each do |row|
      Item.create!(row.to_hash)
    end
  end
end

并使用rake import:from_csv

调用它