Синтаксические ошибки в Heroku, но не на локальном сервере (связанные с postgresql?) - PullRequest
1 голос
/ 26 декабря 2010

Я пытаюсь развернуть свое первое приложение на Heroku (rails 3).Он отлично работает на моем локальном сервере, но когда я перенес его в Heroku и запустил, он вылетает, выдавая ряд синтаксических ошибок.Они связаны с набором областей, которые я использую, как показано ниже:

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

выдает ошибки такой формы:

"синтаксическая ошибка, неожиданный '=', ожидание'|'Синтаксическая ошибка "

", неожиданный '}', ожидание kEND "

Почему этот синтаксис заставляет Heroku задыхаться и как я могу его исправить?Спасибо!

РЕДАКТИРОВАТЬ: Я использовал sqlite на моей локальной машине, и Heroku не поддерживает это.Попытка убедиться, что БД правильно настроена для PG.Я считаю, что сделал это, указав в gemfile, что sqlite будет использоваться только в разработке.Все же я все еще получаю эти синтаксические ошибки, которые прерывают даже db: migrate.

РЕДАКТИРОВАТЬ: так что теперь кажется более вероятным, что мой синтаксис области не работает в postgreSQL.Кто-нибудь знает, как правильно конвертировать это?

Ответы [ 2 ]

1 голос
/ 26 декабря 2010

Функция default-values-for-block-parameters была представлена ​​в Ruby 1.9. Ruby 1.8 не сможет загрузить ваше приложение, если вы используете эту функцию.

Ruby по умолчанию для Heroku - 1.8.7. Используете ли вы Ruby 1.9 на локальном компьютере и Ruby 1.8 на Heroku?

Вы можете узнать, в каком стеке работает приложение Heroku:

$ heroku stack

Вы можете переключиться на стек Ruby 1.9 в Heroku:

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

На сайте Heroku Docs имеется больше информации о стеках и миграции стеков.

0 голосов
/ 26 декабря 2010

Эти синтаксические ошибки для меня не похожи на ошибки postgresql. Странно, у вас есть одинаковые версии всего на вашем локальном сервере, и куда вы его отправляете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...