[英]Rails - Enable deep merge for config_for method?
我目前正在嘗試像這樣加載 a.yml 配置文件:
settings = Rails.application.config_for(:file_name)
該文件類似於以下內容:
shared:
variable_1:
variable_1_a: something
variable_1_b: something
variable_2: example
development:
variable_1:
variable_1_a: something else
但是它不使用深度合並加載,而是僅加載:
settings => {
variable_1 => {
variable_1_a => 'something else'
}
variable_2 => 'example'
}
有沒有辦法在 config_for 方法中也包含“variable_1_b”?
EDIT: Apparently I am using an old version of rails since this behavior was changed in this rails 6.1+ commit: https://github.com/rails/rails/commit/4d858b3f2a70aefda741c517c2db61b4d7d4adfb#diff-84292fcaae327f1a70e7c3b1ebb55b193dea016c1118a8566930bc5cd2a51ba5
這意味着更新 rails 版本為我解決了這個問題。
我無法重現您的問題。 事實上,這在我的機器上完美運行:
./config/file_name.yml
shared:
variable_1:
variable_1_a: something
variable_1_b: something
variable_2: example
development:
variable_1:
variable_1_a: something else
Rails 控制台(為清楚起見添加了空格):
Rails.application.config_for(:file_name)
=> {
:variable_1 => {
:variable_1_a => "something else",
:variable_1_b=>"something"
},
:variable_2=>"example"
}
因此,我投票結束您的問題,除非您的帖子中缺少一些關鍵的附加信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.