Rails 3.1 Развертывание до ошибки Heroku

Я пытаюсь развернуть свое приложение в Heroku, я сделал это раньше на своей машине с Windows, и теперь я использую mac.

Я пытаюсь использовать Postgresql в первый раз.

В моем Gemfile есть следующее:

gem 'pg'

EDIT:

AndrewDavis-OSX:lunchbox ardavis$ rvm list

rvm rubies

=> ruby-1.9.2-p180 [ x86_64 ]

AndrewDavis-OSX:lunchbox ardavis$ heroku rake db:migrate
rake aborted!
/app/config/initializers/session_store.rb:3: syntax error, unexpected ':', expecting $end
App::Application.config.session_store :cookie_store, key: '_app_session'
                                                        ^

(See full trace by running task with --trace)
(in /app)

Как вы можете видеть, я запускаю ruby ​​1.9.2. И есть ошибка для моей миграции герою.

ИЗМЕНИТЬ 2:

Просто создано новое приложение rails с использованием Rails 3.1.rc1. Я установил gemfile для включения

группа: производство gem 'therubyracer-heroku', '0.8.1.pre3' gem 'pg' конец

Я сделал быстрый git init, commited, затем "heroku create" и "git push heroku master". Все работают отлично. Однако проблема заключается в том, что я пытаюсь "heroku rake db: migrate". Я получаю ту же ошибку, что вы видите выше.

ИЗОБРАЖЕНИЕ FEM ИЗОБРАЖЕНИЙ:

Итак... если я изменю свой config/initializers/session_store.rb из

App::Application.config.session_store :cookie_store, key: '_app_session'

к

App::Application.config.session_store :cookie_store, :key => '_app_session'

и измените мой config/initializers/wrap_parameters.rb из

ActionController::Base.wrap_parameters format: [:json]

к

ActionController::Base.wrap_parameters :format => [:json]

Тогда я могу сделать "heroku rake db: migrate" просто отлично. Кто-нибудь хочет объяснить, почему это работает локально исходным образом, без какой-либо модификации двоеточий/хеши? Первоначальный способ - это сгенерированное значение по умолчанию от выполнения 'rails new myApp'

Ответ 1

Стек Heroku необходимо перенести, вы можете запустить эту команду для этого:

heroku stack:migrate bamboo-mri-1.9.2 

Я запускал 1.9.2 локально, поэтому он работал локально. Но на Heroku он бежал 1.8.7.

Ответ 2

Проблема заключается в том, что в Ruby 1.9.2 имеется аргумент хэш-стиля нового стиля, но недоступен в Ruby 1.8.7, который:

key: value  # only available in 1.9.2 but

:key => value # available in 1.8.7 and 1.9.2

Ответ 3

Это просто дополнительный указатель на некоторые. Если вы когда-либо получаете ту же ошибку в своей среде разработки, в приложении, которое функционировало всего лишь несколько минут назад, проверьте свою рубиновую версию как Preksha/Alex Kliuchnikau, упомянутую выше.

$ ruby -v

Если ruby ​​не установлен на 1.9.2 или выше, вы можете сделать это с помощью rvm

   $ rvm --default 1.9.2   (1.9.3 is what I currently use)

Если он не отвечает на команду rvm, добавьте rvm в файл bashrc, скопировав следующую строку в своем терминале:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" ' >> ~/.bash_profile