как импортировать данные в рельсы? - PullRequest
9 голосов
/ 14 сентября 2010

У меня есть приложение Rails 3 с классом User и файл пользователей с разделителями табуляции, которые я хочу импортировать.

Как получить доступ к модели Active Record вне консоли rails, так чточто я могу написать скрипт для

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 ]

14 голосов
/ 14 сентября 2010

Вы можете написать метод грабли так. Добавьте это в файл my_rakes.rake в папке your_app / lib / tasks:

  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 из корневой папки вашего приложения в Терминале.

4 голосов
/ 29 апреля 2011

Используйте гем activerecord-import для массового импорта.

Установка через ваш 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...