我有一個巨大的配置yaml文件,其中所有節點都應該作爲字符串讀取。舉個例子:如何強制yaml中的所有節點都是字符串
model_names:
Audi:
A4:
- A4
- A 4
Fiat:
500:
- 500
我加載了文件中的軌道:
catalogue = File.read("#{Rails.root}/config/cars_catalogue.yml")
CARS_CATALOGUE = YAML.load(catalogue)
我的問題是,如果我問:
CARS_CATALOGUE['model_names']['Fiat']['500']
它返回nil,因爲它認爲, 500:是一個fixnum - 但所有的節點總是應該是字符串 - 我不想在yaml文件中的任何地方用引號強制執行此操作。那麼我該如何以簡單明智的方式來做到這一點?
但它只適用於散列的直接鍵,不會遞歸嵌套散列。 – rubish
OP已經用'ruby-on-rails'標記了這個問題,所以這裏適合這個法案,但是這個解決方案在純ruby環境下不起作用('stringify_keys'在'ActiveSupport'中)。只是想我會提到它。 –
是的 - 你是對的所有三個人 - stringify_keys的東西,正如前面提到的那樣,它只適用於第一級的鍵 - 不是嵌套的而不是數組...所以有辦法在所有節點? –