Требовать рубиновые камни в контроллере рельсов - PullRequest
9 голосов
/ 08 февраля 2011
require 'rubygems'
require 'mechanize'

agent = Mechanize.new
page = agent.get("http://google.com/")

Этот простой скрипт работает нормально.

Но если я пытаюсь добавить require 'rubygems' и require 'mechanize' контроллеру Rails, сервер выдает:

LoadError in NewsController#find
no such file to load -- mechanize

Я использую RVM на сервере Ubuntu 10.04. Версия Ruby: 1.9.2, версия Rails: 3.0.3. Сервер: Passanger под Apache2.

P.S. Если я запускаю rails server и захожу на mysite.com:3000, все работает без ошибок, поэтому есть проблема с Passanger!

Пожалуйста, помогите мне!

Ответы [ 2 ]

17 голосов
/ 08 февраля 2011

Вы не должны требовать драгоценных камней в вашем контроллере.Вот почему Bundler был добавлен в Rails 3. Просто добавьте mechanize в ваш Gemfile, как это

gem "mechanize"

, и запустите

bundle install

в командной строке.Любой камень, упомянутый здесь, потребуется при запуске приложения.

5 голосов
/ 08 февраля 2011

Способ управления зависимостями в Rails 3: с использованием Gemfile и Bundler .

Отредактируйте свой Gemfile и добавьте

gem "mechanize"

Затем запустите

$ bundle install

Перезагрузите сервер. Библиотека будет автоматически загружена. Нет необходимости вручную требовать RubyGems.

...