13

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

我在 windows vista 上使用 Ruby 1.9.1 版。对于正在使用的任何 rake 命令,我都会收到 rake aborted 错误。这不会发生在我的所有应用程序文件夹中。它仅发生在特定的应用程序文件夹上。

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)
4

6 回答 6

20

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

bundle exec rake -T
于 2011-08-16T19:31:25.003 回答
3

您需要更新您的宝石。我在 gem '1.8.10' 中遇到了这个错误,并通过升级到 1.8.16 来修复

gem update --system

于 2012-02-16T07:41:28.427 回答
2

我只有通过 rvm 的 ruby​​-1.9.2-p180 遇到这个问题。

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

于 2011-07-16T12:27:14.663 回答
0

调用堆栈可能取决于您安装的 gem(一些 gem 对 rails 任务进行猴子补丁),这解释了为什么您会在特定应用程序而不是其他应用程序上遇到这种情况。

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

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

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

于 2010-08-11T11:14:50.887 回答
0

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

于 2011-05-24T09:18:13.163 回答
0

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.

于 2011-12-21T22:33:42.743 回答