And*_*nov 4 rake ruby-on-rails data-import ruby-on-rails-3.1
我正在尝试运行此自定义rake任务以将数据导入我的Rails 3.1应用程序:
desc "Import users."
task :import_users => :environment do
File.open("users.txt", "r").each do |line|
name, email, age = line.strip.split("\t")
u = User.new(:name => name, :email => email, :age => age)
u.save
end
end
Run Code Online (Sandbox Code Playgroud)
我将文件保存为import_users.rake并将其放在我的应用程序的lib/tasks目录中.
但是,当我尝试rake import_users在命令行中运行时,我收到此错误:
No such file or directory - users.txt
我将users.txt放在与.rake文件(lib/tasks目录)相同的目录中,这是正确的位置吗?
文件名相对于执行rake任务的目录,而不是rake文件所在的目录.指定绝对路径,包括rails安装目录,如下所示:
File.open(File.join(Rails.root, "lib", "tasks", "users.txt"), "r")
Run Code Online (Sandbox Code Playgroud)
导入数据afaik没有"正确"的位置,但lib/tasks目录不应该是它.只需在rails根目录下创建一个专用目录,然后以与上面相同的方式指向它.