我们正在尝试建立一个专门在运行的 Rails 应用程序上下文中运行的 gem-ready 初始化代码块,但事实证明这非常困难。
我们希望它在以下情况下运行:
- 应用程序通过命令行从本地启动
rails server
- 应用在 Heroku 或其他部署环境上启动
- 在测试期间
但不是在以下情况下:
- 正在运行 Rake 任务
- 发电机正在运行
- 在部署到 Heroku 的过程中运行的任何内容
尤其是最后一个例子,让我们绊倒了。每当我们通过 推送到 Heroku 时git push heroku master
,我们的应用程序都会在一些奇怪的上下文中执行,它正在生产中,但是初始化器没有可用的 Heroku 配置变量..在任何地方都找不到任何信息..
我们已经在其他地方看到过这个问题,但是传递 ENV 变量不是一种选择,因为它会在 gem 中。