我的来源只包含1,500个对象。最多可能会增加到2,000。我通过PDF获取对象并使用PDF Reader解析。它们被行解析并作为String对象返回:
buf
然后我删除附加到姓氏的“,”并拆分String对象,从而创建一个数组对象:
file = File.open("app/assets/images/file.pdf")
reader = PDF::Reader.new(file)
page = reader.pages[0]
rows = page.text.scan(/^.+/) #String Objects
rows.slice!(0..3) #Removes Header Info
Sample object :
=> ["1", "3", "215", "06/02/83", "Law,", "Steve"]
我想遍历每一行并通过控制台或表单插入到User表中。我应该考虑哪些方法?
谢谢!
答案 0 :(得分:0)
假设您的mysql
表中包含users
表,并且安装了active_record
gem。
如果您首先编写普通ruby脚本,则需要active_record
(常用于rails中的ORM),建立与db的连接并创建User
模型以通过{{访问users表1}}:
ActiveRecord
所以现在你需要做的就是迭代行并调用require 'rubygems'
require 'active_record'
ActiveRecord::Base.establish_connection(
:adapter => 'mysql',
:host => 'localhost',
:database => 'your_db_name'
)
class User < ActiveRecord::Base
end
方法:
User.create
一切都可以在一个文件中完成。
如果您在Rails环境中编写类似rake任务的内容,则需要在rows.slice!(0..3).each do |row|
row.reverse! # reverse array so we can easily access its elements with ruby Array methods
first_name = row.first
last_name = row.second.sub(/,/, '') # remove ',' symbol
birth_date = row.third
...
User.create(:first_name => first_name, :last_name => last_name, :birth_date => birth_date, ...) # I assumed you have first_name, last_name, ..., columns in your users table
end
中配置数据库连接,并在config/database.yml
目录中创建User
模型。