耙子流产了! 堆栈级别太深

可能重复:
Rails 3.0和Ruby 1.9.2rc:Rake命令返回’已初始化的常量’和堆栈级别太深的错误。 有任何想法吗

我在Windows Vista上使用Ruby版本1.9.1。 我正在使用任何rake命令获得rake中止错误。 这不会发生在我的所有app文件夹中。 它只发生在特定的应用程序文件夹中。

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) 

尝试将bundle exec放在rake命令前面。

 bundle exec rake -T 

你需要更新你的gem。 我用gem’1.8.10’遇到了这个错误,并通过升级到1.8.16来修复

gem update --system

我只通过rvm与ruby-1.9.2-p180有这个问题。

切换到ruby-1.9.2-p0解决了这个问题。 试试“rvm使用1.9.2-p0”

调用堆栈可能取决于您安装的gem(某些gemmonkeypatch rails任务),这解释了为什么您会在特定应用程序而不是其他应用程序上遇到此问题。

在unix系统上,您可以尝试使用ulimit命令来增加堆栈大小。 在Windows方面我还没有找到解决方案。

根据您在Windows上使用的ruby版本,您可能需要向维护人员询问如何增加堆栈。

对于ruby安装程序,您需要安装mingw编译环境,克隆github存储库并重新编译您使用的ruby(我承认不是很性感)。

我刚刚在Ubuntu上遇到了这个确切的错误消息,并且能够通过将rubygems从1.8.3 降级到1.7.1来解决它。

Yehuda Katz有一篇很好的post解释了为什么没有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