我在.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
可用的值数组。
如果有更好的,不那么讨厌的方法我会很感激你的洞察力。
1条答案
按热度按时间inkz8wg91#
dotenv
gem在.env
文件中不支持YAML格式。如果你想的话,你可以使用"
s在你的字符串中包含换行符,然后你可以在换行符上分割,或者只是用,
或其他你可以依赖的不嵌入值中的东西来分隔你的值(然后像你已经在做的那样分割它)。