如何将数据导入rails?

时间:2010-09-13 20:17:41

标签: ruby-on-rails

我有一个带有User类的Rails 3应用程序,以及一个我要导入的用户界面分隔文件。

如何在rails控制台之外访问Active Record模型,以便我可以编写脚本来执行

require "???active-record???"

File.open("users.txt", "r").each do |line|
    name, age, profession = line.strip.split("\t")
    u = User.new(:name => name, :age => age, :profession => profession)
    u.save
end

我是否使用“ar-extensions”宝石,还是有另一种方式? (我现在并不特别关心速度,我只是想要一些简单的东西。)

2 个答案:

答案 0 :(得分:14)

你可以写一个rake方法。 将其添加到your_app / lib / tasks文件夹中的my_rakes.rake文件:

  desc "Import users." 
  task :import_users => :environment do
    File.open("users.txt", "r").each do |line|
      name, age, profession = line.strip.split("\t")
      u = User.new(:name => name, :age => age, :profession => profession)
      u.save
    end
  end

然后从终端中应用的根文件夹中调用$ rake import_users

答案 1 :(得分:4)

使用 activerecord-import gem进行批量导入。

通过您的Gemfile安装:

gem 'activerecord-import'  

收集您的用户并导入:

desc "Import users." 
task :import_users => :environment do
  users = File.open("users.txt", "r").map do |line|
    name, age, profession = line.strip.split("\t")
    User.new(:name => name, :age => age, :profession => profession)
  end
  User.import users
end