ruby-on-rails 你能在自定义配置文件Settings.yml中使用ENV值数组吗?

wgx48brx  于 2023-10-21  发布在  Ruby
关注(0)|答案(1)|浏览(106)

我在.env文件中定义了一个ENV变量数组:

WEBHOOK_SIGNATURES=
  -value_1
  -value_2
  -value_3

我还有一个external_service.yml自定义配置文件,我想向其中添加此值数组,以便可以通过Rails.configuration.x.external_service.webhook_signatures而不是ENV["WEBHOOK_SIGNATURES"]访问它们

default: &default
  webhook_signatures: <%= ENV['WEBHOOK_SIGNATURES'] %>

production:
  <<: *default

development:
  <<: *default

test:
  <<: *default

问题是Rails.configuration.x.external_service.webhook_signatures返回nil
有没有一种合适的方法来为自定义配置文件定义一个值数组?
编辑:最后我在external_service.yml文件中定义了它,如下所示:

webhook_signatures: <%= ENV['WEBHOOK_SIGNATURES']&.split(',')&.map(&:strip) %>

它可以有效地将.env中的多行变量转换为使用Rails.configuration.x.external_service.webhook_signatures可用的值数组。
如果有更好的,不那么讨厌的方法我会很感激你的洞察力。

inkz8wg9

inkz8wg91#

dotenv gem在.env文件中不支持YAML格式。如果你想的话,你可以使用" s在你的字符串中包含换行符,然后你可以在换行符上分割,或者只是用,或其他你可以依赖的不嵌入值中的东西来分隔你的值(然后像你已经在做的那样分割它)。

相关问题