gpt4 book ai didi

ruby-on-rails - 为什么 Figaro gem 仅在我使用 erb 语法时才起作用?

转载 作者:行者123 更新时间:2023-12-04 05:52:02 26 4
gpt4 key购买 nike

我正在使用 Figaro gem但它仅在我访问 config/database.yml 中的 env 变量时才有效像这样:

<%= ENV["MYSQL_USERNAME"] %>

但不是当我按照文档指定的方式尝试时:
ENV["MYSQL_USERNAME"]

或者
Figaro.env.mysql_username

有谁知道这是为什么?

最佳答案

Figaro Gem's 官方文档明确说明(参见“举个例子”部分)以下内容:

NOTE: Figaro uses Rails' standard hooks to initialize. Unfortunately, this hook apparently occurs after database.yml is read. Because of this issue, environment variables created in application.yml don't work inside database.yml.



在进一步调查后,我发现很少有关于此的问题。 Steve Richert(Figaro Gem 的创建者,带有“laserlemon”Github id)在 上说了这句话issue #70

This is a known issue. We use Rails' standard hooks to initialize Figaro before Rails initializes. Unfortunately, this hook apparently occurs after database.yml is read. Trying to circumvent the standard hooks and tie into Rails' initialization elsewhere introduces a host of new problems and makes it very difficult to account for every situation in which the Rails environment is loaded. I'm afraid this falls into the "won't fix" bucket until Rails provides a better (and supported) hook that Figaro can tie into...



更新 :

根据 pull request #100 database.yml 配置适用于 Rails(如 4.0 和 4.1)和 Figaro 的最新版本。

最后,我 强烈推荐阅读Rails Environment Variables Taylor Mock 和 Daniel Kehoe 的指南。这是所有 RoR 开发人员都必须阅读的内容。

关于ruby-on-rails - 为什么 Figaro gem 仅在我使用 erb 语法时才起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765673/

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