Рельсы: отсутствует драгоценный камень roxml

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

Missing these required gems: roxml

драгоценный камень установлен, и появляется в gem list, Приложению требуется ряд других гемов, все из которых я установил без проблем, но по какой-то причине оно не распознает наличие roxml.

Я попытался очистить всю мою установку ruby ​​/rails/gem и начать заново с помощью rvm, но, пройдя этот процесс, установив все необходимые гемы (включая roxml), я снова остался с той же ошибкой.

Полное сообщение об ошибке:

Missing these required gems: roxml You're running: ruby 1.8.7.334 at /home/tim/.rvm/rubies/ree-1.8.7-2011.03/bin/ruby rubygems 1.6.2 at /home/tim/.rvm/gems/ree-1.8.7-2011.03, /home/tim/.rvm/gems/ree-1.8.7-2011.03@global 

(Примечание: я сейчас использую ruby ​​Enterprise Edition с rvm, но у меня была та же проблема pre-rvm с обычным ruby ​​1.8.7 и rubygems, установленными из репозиториев Ubuntu.)

У меня есть такое же приложение, работающее над другой коробкой Ubuntu с такими же версиями всего, так что что-то пошло не так на этой машине где-то вдоль линии, но я не уверен, где искать. Любая помощь приветствуется!

2 ответа

Решение

Я смог исправить это, обернув некоторые загрузки active_support в условные выражения:

В: /home/tim/.rvm/gems/ree-1.8.7-2011.03/lib/ruby/gems/1.8/gems/roxml-3.1.6 измените первые части active_support на:

require 'active_support'
if Gem.loaded_specs['activesupport'].version >= Gem::Version.new('3')
    require 'active_support/inflector/inflections'
    require 'active_support/core_ext/object/duplicable'
    require 'active_support/core_ext/module/delegation'
    require 'active_support/core_ext/array/extract_options'
    require 'active_support/core_ext/hash'
    require 'active_support/core_ext/string/starts_ends_with'
end

Я бы проверил две вещи. Первый - это roxml, установленный в RVM, а не как жемчужина в общей системе? Вы можете проверить, запустив /home/$user/.rvm/bin/rvm gem list

Другая проблема в том, что gem list в RVM будут перечислены гемы для всех установленных версий Ruby, а не только для стандартной или активной Ruby. Убедитесь, что вы действительно установили roxml в используемый вами Ruby.

Другие вопросы по тегам