Грабли прерваны! уровень стека слишком глубокий

Возможный дубликат:
Rails 3.0 и Ruby 1.9.2rc: команды Rake возвращают "уже инициализированную константу" и слишком глубокие ошибки уровня стека. Любые идеи

Использую Ruby версии 1.9.1 для Windows Vista. Я получаю ошибку с отменой рейка для любых команд рейка, которые я использую. Это происходит не во всей папке приложения. Это происходит только в отдельной папке приложения.

C:\rails_project\stunetwork>rake db:reset
(in C:/rails_project/stunetwork)
rake aborted!
stack level too deep
C:/Ruby191/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rak
efile'
(See full trace by running task with --trace)

Ответ 1

попробуйте поставить пакет exec перед командой rake.

bundle exec rake -T

Ответ 2

Вам нужно обновить свой драгоценный камень. Я встретил эту ошибку с помощью gem "1.8.10" и исправил обновление до 1,8.16

gem update --system

Ответ 3

У меня была эта проблема только с ruby-1.9.2-p180 через rvm.

Переключение на ruby-1.9.2-p0 устранило проблему. попробуйте использовать "rvm use 1.9.2-p0"

Ответ 4

Стек вызовов может зависеть от установленных вами камней (некоторые gems monkeypatch рельсовые задачи), что объясняет, почему вы столкнулись с этим в определенном приложении, а не на других.

В системе unix вы можете попробовать использовать команду ulimit для увеличения размера стека. На стороне окна я еще не нашел решение.

В зависимости от того, какой выпуск рубина вы используете в Windows, вы можете попросить сопровождающих, как увеличить стек.

Для рубинового установщика вам нужно будет установить среду компиляции mingw, клонировать репозиторий github и перекомпилировать рубин, который вы используете (не очень сексуальный Я признаю).

Ответ 5

Я только что столкнулся с этим точным сообщением об ошибке на Ubuntu и смог решить его с помощью понижения рубигемов от 1.8.3 до 1.7.1.

Ответ 6

Есть хорошая статья от Yehuda Katz, которая объясняет, почему без bundle exec могут быть конфликты версий: http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/

Существует также команда bundle install --binstubs, которая позволяет безопасно запускать rake db:reset с помощью версии: bin/rake db:reset.