Что вызывает эту ошибку зависимости в Rails 3?

#ruby-on-rails

#ruby-on-rails

Вопрос:

Теперь я получаю следующее:

 `dependencies.rb:239:in `require': no such file to load -- require_relative (LoadError`)
  

Но у меня недостаточно информации, чтобы выяснить, что является ее причиной или как ее отладить.

Что я могу сделать?

Комментарии:

1. На какой версии Ruby вы работаете?

2. Я не уверен, что вызвало это … внезапно, с некоторыми незначительными изменениями, я начал получать это, и я понятия не имею, с чего начать это исправлять…. когда я создаю совершенно новый экземпляр приложения rails, он запускается нормально, но я не хочу начинать с нуля …. : (

Ответ №1:

Вероятно, это происходит из linecache gem version 0.45 , который был выпущен вчера. Откат к 0.43 поможет вам пока обойти эту проблему. Я не уверен, намеренно ли они прервали поддержку Ruby 1.8.7 или нет.

Это зависимость от ruby-debug-base .

Добавьте что-то похожее на следующее в свой Gemfile .

 group :development, :test, :cucumber do 
  gem "linecache", "0.43"
  gem "ruby-debug-base", "0.10.4.0"
  gem "ruby-debug", "0.10.4"
end
  

Комментарии:

1. ах, ты гений, это звучит так, как и было, но я пытаюсь это сейчас! если это сработает, вы спасли мне жизнь

2. вау, мы только что получили это, и у меня было ощущение, что это ошибка с кешем строки. я просто не знал, как это исправить. спасибо за это! сегодня вы спасли две жизни

3. сегодня утром была такая же проблема, и вышеприведенное помогло мне, спасибо

Ответ №2:

В качестве альтернативы добавьте

 gem 'require_relative'
  

в ваш Gemfile. Похоже, что linecache 0.45 нуждается в этом, а 0.43 — нет, вот почему работает понижение рейтинга linecache.

Комментарии:

1. Я не включил это в свой ответ, потому что я не уверен, какова цель выпуска linecache версии 0.45. В нем должна быть указана эта зависимость или, по крайней мере, указано, что она нарушена в версии 1.8.7. По этой причине я не доверяю этому выпуску и предпочел бы дождаться разъяснений или версии 0.46.

2. Выпуск 0.46 доступен и теперь имеет зависимость для require_relative. Извините за упущение.