Rails从arel升级到4.2堆栈太深的错误

时间:2017-03-15 14:59:26

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

我正在进行铁路升级,并且能够成功将其转移到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

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

#Update(03/16): 这似乎是由设计造成的...... 我设法将错误跟踪到config/initializers/devise.rb中的以下行:

require 'devise/orm/active_record'

1 个答案:

答案 0 :(得分:0)

我发现了......

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

我之前正在运行设计3.2.1,我把它提升到3.5.1。如果我一次只更新一个宝石,我会注意到这一点......

但是,版本3.4.1现在对我很有用。

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