1

我们正在尝试建立一个专门在运行的 Rails 应用程序上下文中运行的 gem-ready 初始化代码块,但事实证明这非常困难。

我们希望它在以下情况下运行:

  • 应用程序通过命令行从本地启动rails server
  • 应用在 Heroku 或其他部署环境上启动
  • 在测试期间

但不是在以下情况下:

  • 正在运行 Rake 任务
  • 发电机正在运行
  • 在部署到 Heroku 的过程中运行的任何内容

尤其是最后一个例子,让我们绊倒了。每当我们通过 推送到 Heroku 时git push heroku master,我们的应用程序都会在一些奇怪的上下文中执行,它正在生产中,但是初始化器没有可用的 Heroku 配置变量..在任何地方都找不到任何信息..

我们已经在其他地方看到过这个问题,但是传递 ENV 变量不是一种选择,因为它会在 gem 中。

4

1 回答 1

1

我不知道您如何检测到您处于 Heroku 资产预编译阶段并避免运行一些代码,但您可以使用“user-env-”在预编译期间获取 Heroku 环境变量Heroku Labs 的 compile 功能。

https://devcenter.heroku.com/articles/labs-user-env-compile

 heroku labs:enable user-env-compile -a myapp
于 2013-09-27T03:25:05.540 回答