我有一个带有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”宝石,还是有另一种方式? (我现在并不特别关心速度,我只是想要一些简单的东西。)
答案 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