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

Heroku上有语法错误,但本地服务器上没有语法错误(与postgresql相关?),postgresql,syntax,heroku,ruby-on-rails-3,Postgresql,Syntax,Heroku,Ruby On Rails 3,我正在尝试在Heroku(rails 3)上部署我的第一个应用程序。它在我的本地服务器上运行良好,但当我将其推送到Heroku并运行时,它崩溃了,出现了许多语法错误。这些与我使用的作用域集合相关,如下所示: scope :scored, lambda { |score = nil| score.nil? ? {} : where('products.votes_count >= ?', score) } 它会产生以下形式的错误: 语法错误,意外的“=”,应为

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

  scope :scored, lambda { |score = nil|       
    score.nil? ? {} : where('products.votes_count >= ?', score)
  }
它会产生以下形式的错误:

语法错误,意外的“=”,应为“|”

语法错误,意外“}”,应为kEND

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

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


编辑:所以现在看来我的作用域语法在postgreSQL中不起作用的可能性更大。有人知道如何正确转换吗?

这些语法错误在我看来不像postgresql错误。奇怪的是,您的本地服务器上的所有内容都有相同的版本,您将其推送到哪里?

这些语法错误在我看来不像postgresql错误。奇怪的是,您的本地服务器上的所有内容都有相同的版本,您将其推送到哪里?

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

该网站提供了有关堆栈和堆栈迁移的更多信息。

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
该网站有更多关于堆栈和堆栈迁移的信息