2013-02-06 58 views
2

我正在将应用程序从Rails 3.0升级到Rails 3.1。测试运行正常,作为独角兽服务器。但是,当我运行任何rake任务(即'rake routes'或甚至'rake about')时,它会返回'堆栈级别太深'。这不会发生使用Rails 3.0.20。运行任何rake任务时堆栈级别过深错误

我跟踪了Rails堆栈,需要单独的库,并且当我需要ActiveRecord或ActionController时发生错误。我试过不同版本的Rails(从3.1.0到3.2.11),不同版本的rake(0.8.7,0.9.2,10.0.3),不同版本的bundler(1.1.5和更高版本) 1.2.3),结果是一样的。我总是使用'​​bundle exec',并尝试使用binstub('bin/rake')。

我还没有使用资产管道,所以没有sass-rails问题。

我在OS X Mountain Lion下使用RVM,并且还重新安装了ruby 1.9.3-p374。我甚至在Vagrant下使用过Ubuntu,结果相同。

有没有人有同样的问题?

回答

3

发现问题:在某些任务中,我们有ActionView::Helpers包含在内(例如使用number_to_currency),这就是导致堆栈级别太深的错误。

当您使用include ActionView::Helpers创建全新的应用程序和单个.rake文件时,也会发生这种情况。关于这个,我会在Ruby on Rails上打开一个问题。

+0

我缩小到特定的ActionView :: Helpers :: ControllerHelper。这是导致错误的唯一帮手。 – shadowmaru

+0

以下是相关问题:https://github.com/rails/rails/issues/3144#issuecomment-13617171 – Lichtamberg