Как мне получить установленный рубиновый гем в Rails? - PullRequest
2 голосов
/ 29 марта 2009

Я пытаюсь получить гем, который я установил, работая в приложении Rails. Я могу просто потребовать гем в Ruby-программе, которую я запускаю из командной строки, используя:

require 'nokogiri'

Но когда я пытаюсь сделать то же самое в одном из моих контроллеров Rails, он выдает сообщение "нет такого файла для загрузки - nokogiri".

Я попытался использовать полный путь к файлу lib / nokogiri.rb, но это не удалось, потому что он не может найти "nokogiri / native".

Ответы [ 4 ]

3 голосов
/ 29 марта 2009

Лучше поместите в файл environment.rb следующее:

Rails::Initializer.run do |config|
  ...
  config.gem :nokogiri
  ...
end

Это скажет Rails, что вы зависите от этого конкретного драгоценного камня. Он также позволяет вам указать конкретные версии и автоматически синхронизировать все ваши драгоценные камни или распаковать их в vendor / gems, если вы того пожелаете.

2 голосов
/ 30 сентября 2010

У меня была похожая ошибка, но я просто забыл поместить в файл environment.rb следующее: (обратите внимание на цитату "nokogiri")

Rails::Initializer.run do |config|
  ...
  config.gem "nokogiri"
  ...
end
1 голос
/ 29 марта 2009

Хорошо, я понял это. Это звучит довольно глупо ... ну да ладно ...

Оказывается, на моей машине было две установки ruby. Я использую InstantRails для обслуживания своих тестовых приложений, и он поставляется в комплекте с установкой ruby. Однако у меня была другая установка, но именно здесь была установлена ​​программа nokogiri, а не установка в InstantRails.

В любом случае они искали драгоценные камни в разных местах.

0 голосов
/ 29 марта 2009

Попробуйте следующее

require 'rubygems'  
gem 'nokogiri'  

Если вы работаете с какой-либо формой * nix, вы получили какие-либо ошибки при установке гема, в частности, ошибки, указывающие на то, что гем не был на пути. Это может произойти, если вы установили драгоценный камень как вы, а не как root, и у вас нет личной библиотеки драгоценных камней в вашем пути к самоцвету.

Если вы всегда устанавливаете свои драгоценные камни, используя

sudo gem install some_gem_name 

тогда у вас не должно быть этой проблемы.

...