LocalJumpError:升级到rails 4后所有数据库查询的意外返回

时间:2014-09-25 04:24:32

标签: database ruby-on-rails-4 ruby-on-rails-4.1

我正在将我的Rails 3.2应用程序升级到Rails 4.1。 (我使用的是rbx-2.2.10)

我已经进入了运行我的规范的阶段,但是每当他们查询数据库时它们都会失败并且我收到此错误:

LocalJumpError: unexpected return

我尝试在我的控制台中进行调查,运行查询时遇到同样的问题。

我已经阅读了一些答案,例如:

Unexpected Return (LocalJumpError)

关于rails不允许在不在关闭方法内的块内部进行返回调用,但是失败的代码没有这样的代码。

1 个答案:

答案 0 :(得分:1)

我得到的错误没有用,但我发现了问题。

Rails4现在要求使用procs或lambdas定义范围。见this documentation

  

Rails 4.0要求范围使用可调用对象,例如Proc或   拉姆达:

scope :active, where(active: true)
  

变为

scope :active, -> { where active: true }

通过更改我的所有模型范围以使用lambdas,问题得以解决,我可以再次查询数据库。

似乎即使一个过时的范围也会破坏所有数据库调用。