mCY
mCY

Reputation: 2821

how to include external library in Rails

thanks for your time!

I've got rails installed in my Windows XP. The version is : Rails 3.2.7

I've installed nokogiri and have successfully developed a small program using it in Ruby.

But for Rails, I don't know how to include external lib in my code.

According to this topic, How to use ruby libraries in rails?, I added gem nokogiri in Gemfile. But it still give me this error : uninitialized constant SayController::Nokogiri.

And if I add require 'nokogiri' in my say_controller.rb, it gives me another error cannot load such file -- nokogiri

I am new in Rails. It seems a quite simple task. What should I do.

By the way, here what I got when I run 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.

Here's my Gemfile looks like:

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'

Upvotes: 0

Views: 2948

Answers (1)

smile eva
smile eva

Reputation: 68

As documented in github nokogiri, I think you need to requires 2 lines in say_controller.rb

For example:

require 'nokogiri'
require 'open-uri'
class ControllerName < ApplicationController
    def index
        doc = Nokogiri::HTML(open('http://www.google.com/search?q=sparklemotion'))
    end
end

Upvotes: 1

Related Questions