ruby-on-rails - 使用 Procfile 开始在 Heroku 上使用 Rails

标签 ruby-on-rails heroku foreman

使用 git 进行原生 Rails 安装(实际上遵循此处的 Heroku 指南 https://devcenter.heroku.com/articles/rails3 )

但是它提到了 Procfile 的创建

web: bundle exec rails server thin -p $PORT -e $RACK_ENV

但是,如果您使用 foreman start 运行此命令,则会收到错误,因为您尚未定义 RACK_ENV

20:45:26 web.1 | started with pid 26364 20:45:27 web.1 | /SomeLocalPath/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.2/lib/rails/commands/server.rb:33:in `parse!': missing argument: -e (OptionParser::MissingArgument)

这个 -e 参数应该存储在哪里才能使这一切正常工作?

最佳答案

我猜您的意思是您在本地开发计算机上遇到此错误。

您可以在启动foreman时设置RACK_ENV,例如:

RACK_ENV=development foreman start

或者您可以使用不同的 procfile 进行开发(例如“Procfile-dev”),它具有选项 -e 内联的值,如下所示:

web: bundle exec rails server thin -p 3000 -e development

并用以下方式调用它:

  foreman start -f Procfile-dev 

(在 Heroku 上,它应该可以正常工作,因为当您在应用程序文件夹中运行“heroku config -s”时,您应该看到“RACK_ENV=生产”,因此此处正确设置了所需的环境变量) .

关于ruby-on-rails - 使用 Procfile 开始在 Heroku 上使用 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9949535/

相关文章:

ruby-on-rails-3 - Heroku上的rufus-scheduler和delayed_job : why use a worker dyno?

ruby-on-rails - 如何使用 SQL 获取按年份分组的最新值

ruby-on-rails - 通过 SendGrid 使用 Ruby on Rails 发送带附件的电子邮件

ruby-on-rails - Ruby On Rails 应用程序和 Openshift 中的 Elasticsearch

ruby-on-rails - 何时开始考虑部署我的 Rails 应用程序

ruby-on-rails - 为什么 'autofocus: true' 不适用于 Rails 中的 collection_select,而它适用于 text_field=

mysql - Cygwin 上的 Heroku 正在记录一些奇怪的东西,看起来像 "mysql --help"

node.js - 使用 upstart 和 Procfile 运行 node.js 应用程序

ruby - 调试工头用byebug启动了app。远程调试连接但是没有提示