我的Windows XP中安装了rails。版本为:Rails 3.2.7
我已经安装了nokogiri,并成功开发了一个在Ruby中使用它的小程序。
但对于Rails,我不知道如何在我的代码中包含外部lib。
根据此主题How to use ruby libraries in rails?,我在gem nokogiri
中添加了Gemfile
。但它仍然给我这个错误:uninitialized constant SayController::Nokogiri
。
如果我在require 'nokogiri'
中添加say_controller.rb
,则会给我另一个错误cannot load such file -- nokogiri
我是Rails的新手。这似乎是一项非常简单的任务。我该怎么办。
顺便说一句,这就是我运行bundle install
Using rake (0.9.2.2)
Using i18n (0.6.0)
Using multi_json (1.3.6)
Using activesupport (3.2.7)
Using builder (3.0.0)
Using activemodel (3.2.7)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.1)
Using rack-cache (1.2)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.1.3)
Using actionpack (3.2.7)
Using mime-types (1.19)
Using polyglot (0.3.3)
Using treetop (1.4.10)
Using mail (2.4.4)
Using actionmailer (3.2.7)
Using arel (3.0.2)
Using tzinfo (0.3.33)
Using activerecord (3.2.7)
Using activeresource (3.2.7)
Using bundler (1.1.5)
Using coffee-script-source (1.3.3)
Using execjs (1.4.0)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using json (1.7.4)
Using rdoc (3.12)
Using thor (0.16.0)
Using railties (3.2.7)
Using coffee-rails (3.2.2)
Using jquery-rails (2.0.2)
Using nokogiri (1.5.5)
Using rails (3.2.7)
Using sass (3.2.0)
Using sass-rails (3.2.5)
Using sqlite3 (1.3.6)
Using uglifier (1.2.7)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
这是我的Gemfile看起来像:
source 'https://rubygems.org'
gem 'rails', '3.2.7'
gem 'sqlite3'
gem 'nokogiri'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
答案 0 :(得分:1)
如github nokogiri中所述,我认为你需要在say_controller.rb中需要2行
例如:
require 'nokogiri'
require 'open-uri'
class ControllerName < ApplicationController
def index
doc = Nokogiri::HTML(open('http://www.google.com/search?q=sparklemotion'))
end
end