开发者

how to import data into rails?

I have a Rails 3 application with a User class, and a tab-delimited file of users that I want to import.

How do I get access to the Active Record model outside the rails console, so that I can write a script to do

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, 开发者_Go百科:profession => profession)
    u.save
end

Do I use the "ar-extensions" gem, or is there another way? (I don't particularly care about speed right now, I just want something simple.)


You can write a rake method to so. Add this to a my_rakes.rake file in your_app/lib/tasks folder:

  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

An then call $ rake import_users from the root folder of your app in Terminal.


Use the activerecord-import gem for bulk importing.

Install via your Gemfile:

gem 'activerecord-import'  

Collect your users and 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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜