Вопрос

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

require 'nokogiri'

Но когда я пытаюсь сделать то же самое на одном из моих контроллеров Rails, появляется ошибка: «Нет такого файла для загрузки — nokogiri».

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

require 'rubygems'  
gem 'nokogiri'  

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

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

sudo gem install some_gem_name 

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top