设计堆栈级别太深的错误

时间:2011-08-06 00:42:29

标签: ruby-on-rails ruby-on-rails-3 devise stack stack-overflow

安装设计后我尝试运行

**rake db:migrate**

但它给出了:

**rake aborted!
stack level too deep**

我在Ubuntu上,改变了

**ulimit -s unlimited**

并检查,它有效,但仍有错误。

我使用 RVM ,试图与 Ruby1.9.2-p180,Ruby-1.9.2-p0 一起使用 Rails 3.0.9,Rails 3.1rc4,与Rubinius。 试过 SQLite3和PostgreSQL。 试图从迁移文件中尽可能多地取消注释。

阅读所有相关的Stackoverflow帖子(并意识到我的实际名称是StackOverflow)。

任何帮助都会得到很高的评价!非常感谢

2 个答案:

答案 0 :(得分:2)

你试过bundle exec rake db:migrate吗?

答案 1 :(得分:2)

堆栈级别太深的错误通常是由无限递归问题引起的。

新答案:

我忘了这是在db:migrate期间发生的。您的用户表迁移中的某些内容是否依赖于依赖它的东西?

旧答案:

您可以在routes.rb文件中显示代码行,以便设计。例如,您可能有:

devise_for :users, :controllers => { :registrations => "registration/foo" }

在此示例中,请查看foo_controller.rb中的新方法。如果该方法重定向到另一个导致您再次尝试注册的控制器,则将进行无限递归。

我要做的第一件事是通过在控制器中放置某种调试输出来查看调用的控制器。尝试:

logger.debug("i am in foo")

puts "i am in bar"

如果您可以提供更多信息,我可以提供更多帮助。