【问题标题】:Rails upgrade to 4.2 Stack too deep error from arelRails 从 arel 升级到 4.2 Stack too deep 错误
【发布时间】:2017-08-06 09:45:38
【问题描述】:

我正在进行 Rails 升级,并已成功将其升级到 4.1.16

现在跳转到4.2...能够成功运行bundle update,但是当我尝试运行我的规范时,我得到了一个很少的SystemStackError,如下所示:

//home/vagrant/.rvm/gems/ruby-2.2.3/gems/arel-6.0.4/lib/arel/visitors/reduce.rb:14:in `rescue in visit': stack level too deep (SystemStackError)
from /home/vagrant/.rvm/gems/ruby-2.2.3/gems/arel-6.0.4/lib/arel/visitors/reduce.rb:13:in `visit'
from /home/vagrant/.rvm/gems/ruby-2.2.3/gems/arel-6.0.4/lib/arel/visitors/to_sql.rb:241:in `block in visit_Arel_Nodes_SelectCore'
from /home/vagrant/.rvm/gems/ruby-2.2.3/gems/arel-6.0.4/lib/arel/visitors/to_sql.rb:240:in `each'
from /home/vagrant/.rvm/gems/ruby-2.2.3/gems/arel-6.0.4/lib/arel/visitors/to_sql.rb:240:in `each_with_index'
from /home/vagrant/.rvm/gems/ruby-2.2.3/gems/arel-6.0.4/lib/arel/visitors/to_sql.rb:240:in `visit_Arel_Nodes_SelectCore'
from /home/vagrant/.rvm/gems/ruby-2.2.3/gems/arel-6.0.4/lib/arel/visitors/to_sql.rb:210:in `block in visit_Arel_Nodes_SelectStatement'
from /home/vagrant/.rvm/gems/ruby-2.2.3/gems/arel-6.0.4/lib/arel/visitors/to_sql.rb:209:in `each'
from /home/vagrant/.rvm/gems/ruby-2.2.3/gems/arel-6.0.4/lib/arel/visitors/to_sql.rb:209:in `inject'
 ... 9265 levels...
from /home/vagrant/.rvm/gems/ruby-2.2.3/bin/rspec:23:in `load'
from /home/vagrant/.rvm/gems/ruby-2.2.3/bin/rspec:23:in `<main>'
from /home/vagrant/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
from /home/vagrant/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'

我正在尝试找出这里需要更改/更新的内容,谢谢。

P.S: Ruby 版本是 2.2.3

#更新: 我在之前的堆栈跟踪中犯了一个错误,是错误的,我现在已经更新了。

#更新(03/16): 这似乎是由设计引起的...... 我设法将错误追溯到config/initializers/devise.rb 中的以下行:

require 'devise/orm/active_record'

【问题讨论】:

  • 您定义了default_scope 吗?你使用多态关联吗?
  • 是的,我确实有 default_scopes 和多态关联 @spickermann
  • 这个讨论可能很有趣:github.com/rails/rails/issues/19409
  • @spickermann 我已经尝试注释掉self.default_scope 只是为了确定。我在之前发布的错误跟踪中也犯了一个错误,现在更新了。
  • 检查无限循环。

标签: ruby-on-rails ruby devise upgrade rails-4-upgrade


【解决方案1】:

我找到了...

所以,因为我试图避免 this issue 也有 a stackoverflow post here,所以看起来我的设计版本太高了。

我之前正在运行设计 3.2.1,我将它带到了 3.5.1。如果我一次只更新一个 gem,我会注意到这一点......

但是,3.4.1 版本现在对我来说效果很好。

我可能还应该提到我的pg gem 版本是0.17.0

【讨论】:

    猜你喜欢
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2015-02-21
    • 2015-03-14
    • 1970-01-01
    • 2012-04-04
    • 2015-05-15
    相关资源
    最近更新 更多