13

Estoy intentando implementar mi aplicación en Heroku, he hecho esto antes en mi máquina con Windows, y ahora estoy usando un mac.Rails 3.1 Despliegue a Heroku Error

Estoy tratando de usar Postgresql por primera vez.

Tengo el siguiente en mi 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) 

Como se puede ver, estoy corriendo rubí 1.9.2. Y está el error para mi migración heroku.

EDIT 2:

acaba de crear una marca nueva aplicación utilizando rieles Rieles 3.1.rc1. He establecido la Gemfile incluir

Grupo: Producción hacer joya 'therubyracer-heroku', '0.8.1.pre3' joya 'pg' final

hice un git init rápida, comprometidos, a continuación, 'heroku create' y 'git push heroku master'. Esos todos funcionan bien. Sin embargo, el problema es cuando pruebo 'heroku rake db: migrate'. Me sale el mismo error que ves arriba.

TEMP FIX EDIT:

Así que ... si cambio de config/inicializadores/session_store.rb de

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

a

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

y cambiar mi config/inicializadores/wrap_parameters.rb de

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

a

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

Entonces soy capaz de hacer 'heroku rake db: migrate' muy bien. ¿Alguien quiere explicar por qué esto funciona localmente de la manera original, sin ninguna modificación de los dos puntos y hashes? La forma original es el valor por defecto generado a partir de la práctica 'rieles nueva myApp'

+0

Sí, el Heroku la pila predeterminada es 1.8.7. Eso probablemente cambiará cuando se publique Rails 3.1, ya que 1.8.7 se considera heredado en 3.1. –

+0

ciertamente espero que sí. Estoy usando 3.1.rc1 en este momento. – ardavis

Respuesta

11

la pila Heroku es necesario migrar, puede ejecutar este comando para hacerlo:

heroku stack:migrate bamboo-mri-1.9.2 

estaba corriendo 1.9.2 localmente, por eso funcionaba localmente. Pero en Heroku, estaba ejecutando 1.8.7.

4

El problema es que hay un argumento de hash de nuevo estilo disponibles en Ruby 1.9.2 pero no está disponible en Ruby 1.8.7, que es:

key: value # only available in 1.9.2 but 

:key => value # available in 1.8.7 and 1.9.2 
2

Esto es sólo un puntero adicional para algunos. Si alguna vez obtiene el mismo error en su entorno de desarrollo, en una aplicación que estaba funcionando hace muy poco tiempo, verifique su versión de ruby ​​como Preksha/Alex Kliuchnikau mencionada anteriormente.

$ ruby -v 

Si Ruby no se ajusta a 1,9.2 o superior, se puede hacer eso con RVM

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

Si no está respondiendo al comando RVM, añadir RVM a su archivo .bashrc copiando la siguiente línea en su terminal:

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