我想将XML文件中的数据导入到我的SQLite表中。我该怎么办?我真的需要一些帮助。这是我的代码,我不知道这些有什么问题。
require 'rubygems'
require 'nokogiri'
require 'open-uri'
class AddCoursesData < ActiveRecord::Migration
def up
Course.delete_all
courses = Nokogiri::XML(File.open("courses.xml"))
courses.css('course').each do |node|
children = node.children
Course.create(
acode: node['acode'],
code: node['code'],
sgid: node['sgid'],
name: children.css('name').inner_text,
ects: children.css('ects').inner_text,
year: children.css('year').inner_text,
period: children.css('period').inner_text,
institute: children.css('institute').inner_text,
description: children.css('description').inner_text,
timetable: children.css('timetable').inner_text,
lecture_material: children.css('lecture_material').inner_text,
goals: children.css('goals').inner_text,
participant_count: children.css('participant_count').inner_text,
specialities: children.css('specialities').inner_text,
examination: children.css('examination').inner_text
)
end
end
def down
end
end
然后我输入
>rake db:migrate
上面写着
"rake aborted!
cannot load such file -- nokogiri
D:in 'migrate'
Tasks: TOP=> db:migrate"
我已经安装了nokogiri。我真的不知道如何导入这些数据。你能帮我吗?非常感谢!!
这是我的rubygems环境
D:BitNamirubystackrubyworkUvAcourses>gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.3
- RUBY VERSION: 1.9.3 (2012-05-25 patchlevel 231) [i386-mingw32]
- INSTALLATION DIRECTORY: D:/BitNami/rubystack/ruby/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: D:/BitNami/rubystack/ruby/bin/ruby.exe
- EXECUTABLE DIRECTORY: D:/BitNami/rubystack/ruby/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-mingw32
- GEM PATHS:
- D:/BitNami/rubystack/ruby/lib/ruby/gems/1.9.1
- C:/Users/Lulu/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
您的Ruby有多旧?
在Ruby 1.8.7之前,我们必须以开始我们的需求列表
require 'rubygems'
因为RubyGems不是Ruby标准库的一部分。如果我们不这样做,我们将无法找到所有外部(非核心和非标准lib)宝石。
现在,这已经不是必要的了。
判断是否安装了Nokogiri的其他方法是在命令行中键入以下内容:
gem list nokogiri
which nokogiri
首先查看已安装gem的内部列表。第二个询问Linux或Mac OS OS是否看到gem安装的"nokogiri"命令。