gpt4 book ai didi

ruby - 如何在 Rake 中获取当前的 Rack 环境?

转载 作者:数据小太阳 更新时间:2023-10-29 07:02:55 27 4
gpt4 key购买 nike

有没有办法在 Rake 中获取有关当前 Rack 环境的信息?例如,我如何判断 Rack 是在 development 还是 production 模式下运行?

我知道 Rake 不是 Rack 感知的。我试图避免在生产环境和开发环境之间在几乎相同的 Rake 任务中复制代码。

最佳答案

问题很旧,但从未获得最佳实践答案或根本没有令人满意的答案。

真正的问题是:如何确定在 Rake 任务中使用了哪个环境,以便加载正确的配置/进入正确的 if 条件。

Note: As Rake doesn't give much about Rack (Rake is not using HTTP) to rely on the RACK_ENV is basically wrong but common and handy if a Rake task loads your main Sinatra application (the RACK_ENV is required to let Sinatras development? / test? / production? being set correctly).

答案:为每个 Rake 任务调用设置环境。

命令行调用:

/usr/bin/rake namespace:task_name RACK_ENV=production

Cronjob 调用(在 crontab 中):

cd /into/your/app/root && /usr/bin/rake namespace:task_name RACK_ENV=production --silent

Note: To specify the path of the Rake bin is not necessary if you have it in your global system variables. Your path might differs from mine used in the examples, check on Unix systems with: whereis rake

您可以通过以下方式检查任务中的RACK_ENV:

puts ENV["RACK_ENV"]

关于ruby - 如何在 Rake 中获取当前的 Rack 环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15459569/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com