【问题标题】:Getting started with Rails on Heroku using a Procfile使用 Procfile 在 Heroku 上开始使用 Rails
【发布时间】:2012-04-14 12:37:16
【问题描述】:

使用 git 使用 vanilla rails 安装(实际上遵循这里的 heroku 指南 https://devcenter.heroku.com/articles/rails3

但是它提到了 Procfile 的创建

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

然而,如果你运行这个需要使用工头启动,你会收到一个错误,因为你还没有定义 RACK_ENV

20:45:26 web.1 |从 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!':缺少参数:-e (OptionParser::MissingArgument)

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

【问题讨论】:

    标签: ruby-on-rails heroku foreman


    【解决方案1】:

    我猜你的意思是你在本地开发机器上遇到了这个错误。

    在启动工头时可以这样设置RACK_ENV,例如:

    RACK_ENV=development foreman start
    

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

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

    并调用它:

      foreman start -f Procfile-dev 
    

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

    【讨论】:

    • 这样做会导致 #<:application:0x007fd28c5847b8> (NoMethodError) 出现以下错误 method_missing': undefined method development'
    • 你在什么操作系统上?赢/mac/linux?它在我使用 ruby​​ 1.9.3 的 ubuntu 机器上运行良好。
    • 使用上述设置启动了一个新的 Rails 应用程序,它可以工作。所以我的新错误一定是别的。我会提出另一个问题。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2017-11-27
    • 2012-07-02
    • 2020-02-12
    • 1970-01-01
    相关资源
    最近更新 更多