gpt4 book ai didi

postgresql - Heroku 上的语法错误,但本地服务器上没有(与 postgresql 相关?)

转载 作者:行者123 更新时间:2023-11-29 13:37:47 25 4
gpt4 key购买 nike

我正在尝试在 Heroku (rails 3) 上部署我的第一个应用程序。它在我的本地服务器上运行良好,但是当我将它推送到 Heroku 并运行它时,它崩溃了,出现了一些语法错误。这些与我使用的一系列范围有关,如下所示:

  scope :scored, lambda { |score = nil|       
score.nil? ? {} : where('products.votes_count >= ?', score)
}

它会产生这种形式的错误:

"syntax error, unexpected '=', expecting '|' "

"syntax error, unexpected '}', expecting kEND"

为什么这种语法会使 Heroku 窒息,我该如何纠正它?谢谢!

编辑:我在本地机器上使用 sqlite,但 Heroku 不支持它。尝试确保为 PG 正确配置了数据库。我相信我已经通过在 gemfile 中指定 sqlite 仅在开发中使用来做到这一点。然而,我仍然遇到这些语法错误,甚至会中断 db:migrate。

编辑:所以现在我的范围语法似乎更有可能在 postgreSQL 中不起作用。有谁知道如何正确转换它?

最佳答案

block 参数的默认值功能是在 Ruby 1.9 中引入的。如果您使用此功能,Ruby 1.8 将无法加载您的应用程序。

Heroku 上的默认 Ruby 是 1.8.7。您是否在本地计算机上使用 Ruby 1.9,而在 Heroku 上使用 Ruby 1.8?

您可以通过以下方式了解您的 Heroku 应用程序当前运行在哪个堆栈上:

$ heroku stack

您可以通过以下方式切换到 Heroku 上的 Ruby 1.9 堆栈:

$ heroku stack:migrate bamboo-mri-1.9.2
$ git push heroku --force

Heroku Docs站点有更多关于堆栈和堆栈迁移的信息。

关于postgresql - Heroku 上的语法错误,但本地服务器上没有(与 postgresql 相关?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4533424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com