【发布时间】:2013-03-13 21:44:33
【问题描述】:
我已经在这个论坛上搜索了上述问题的解决方案,但我尝试的一切都没有奏效。基本上,我有一个模型库,在我的 sqlite3 数据库中有相应的库表。我有一个名为 libraries.csv 的 csv 文件,其中包含我要导入数据库的所有数据。
我在this page 的第二个答案上尝试了该方法,但仍然无法正常工作。我确保在 lib/tasks 文件夹中创建了我的 rake 文件 'import_libraries.rake,并且我还将 library.csv 文件保存在该文件夹中,但我不断收到此错误消息:
耙子中止!
不知道如何构建任务“import_libraries”(参见 通过使用 --trace 运行任务来完整跟踪)
这是我正在使用的当前代码:
require 'csv'
desc "Imports a CSV file into an ActiveRecord table"
task :import, [:filename] => :environment do
CSV.foreach('libraries.csv', :headers => true) do |row|
Library.create!(row.to_hash)
end
end
但是当我运行 bundle exec rake import_libraries 时,我收到了上面的错误消息。
我做错了什么吗?我会很感激你们的帮助。谢谢
编辑
我将 rake 文件从 import_libraries.rake 重命名为 import.rake 在运行 bundle exec rake import 时,我现在得到的错误消息是:
rake 中止! UTF-8 中的无效字节序列 C:/Users/username/rails_app_name/lib/tasks/import.rake:4:in `block in ' 任务:TOP => 导入(通过运行任务查看完整跟踪 与 --trace)
【问题讨论】:
-
你能发布你正在尝试的当前代码吗?
-
对不起。我刚刚编辑了我的问题以包含代码
-
你能贴几行
.csv文件吗? -
尝试在
import.rake文件的开头添加这一行:# encoding=utf-8
标签: ruby-on-rails-3 csv import sqlite rake-task