Я только начал использовать Ruby on Rails, и пока он работает хорошо. Сейчас я пытаюсь реализовать драгоценный камень, но он не работает, и я надеюсь, что это просто ошибка новичка - то, что я еще не осознал !!
Я следовал учебным пособиям и получил свой пример с hello world - мне также удалось добавить это в мою учетную запись Heroku. Я начал следовать этому уроку: http://railscasts.com/episodes/190-screen-scraping-with-nokogiri и получил следующий код, работающий в терминале (на Mac)
require 'rubygems'
require 'nokogiri'
require 'open-uri'
url = "http://www.walmart.com/search/search-ng.do?search_constraint=0&ic=48_0&search_query=batman&Find.x=0&Find.y=0&Find=Find"
doc = Nokogiri::HTML(open(url))
puts doc.at_css("title").text
Так что это сработало. Я вижу заголовок внутри терминала. Однако, когда я пытаюсь поместить этот код в свой контроллер вида, он не может найти драгоценный камень nokogiri. Код в моем контроллере
class HomeController < ApplicationController
def index
require 'rubygems'
require 'nokogiri'
require 'open-uri'
url = "http://www.walmart.com/search/search-ng.do?search_constraint=0&ic=48_0&search_query=batman&Find.x=0&Find.y=0&Find=Find"
doc = Nokogiri::HTML(open(url))
@mattVar = doc.at_css("title").text
end
end
Итак, в моем HTML у меня есть
<h1>Hello!</h1>
<p><%= @mattVar %></p>
Какой должен выводить заголовок, как это делается в окне терминала. Тем не менее, я получаю сообщение об ошибке no such file to load -- nokogiri
Есть идеи, где я иду не так?
Если я сделаю gem list
, я смогу увидеть там камень нокогири.
UPDATE
Я закрыл локальный сервер рельсов и перезапустил. Это сейчас работает. Не уверен, что это произошло из-за работы по добавлению гема в мой корень или из-за установки пакета (как предложено в постах ниже). Спасибо за помощь.