Rails 3.1部署到Heroku错误

我正在尝试将我的应用程序部署到Heroku,我之前已经在我的Windows机器上完成了这个,现在我正在使用mac。

我第一次尝试使用Postgresql。

我的Gemfile中有以下内容:

gem 'pg' 

编辑:

 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。 我的heroku迁移有错误。

编辑2:

刚刚使用Rails 3.1.rc1创建了一个全新的rails应用程序。 我将gemfile设置为include

组:制作做gem’therubyracer-heroku’,’0.8.1.pre3’gemite’pg’结束

我做了一个快速的git init,提交,然后’heroku create’和’git push heroku master’。 一切都很好。 然而问题是当我尝试’heroku rake db:migrate’时。 我得到了你在上面看到的同样的错误。

TEMP FIX编辑:

所以…如果我改变我的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’生成的默认值

需要迁移Heroku堆栈,您可以运行此命令来执行此操作:

 heroku stack:migrate bamboo-mri-1.9.2 

我在本地运行1.9.2,这就是它在本地工作的原因。 但是在Heroku上,它的运行速度为1.8.7。

问题是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 

这只是一些指向某些内容的指针。 如果您在开发环境中遇到相同的错误,那么在刚才运行的应用程序上,请检查您的ruby版本,如上面提到的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