거대한 구성 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']
그것은 전무를 반환, 그것은 생각하기 때문에 500 : fixnum입니다.하지만 모든 노드는 항상 문자열이어야합니다. yaml 파일의 모든 곳에서 따옴표를 사용하여이를 적용하고 싶지는 않습니다. 그렇다면 어떻게 간단하고 똑똑한 방식으로이 작업을 수행 할 수 있습니까?
그러나 해시 즉시 키에서만 작동하며 중첩 해시로 재귀하지 않습니다. – rubish
OP는 'ruby-on-rails'태그로 태그를 달았으므로이 방법은 여기에 적합하지만이 솔루션은 순수한 루비 환경에서는 작동하지 않습니다 ('stringify_keys'는'ActiveSupport'에 있습니다). 그냥 내가 언급 한 줄 알았는데. –
예 - 여러분 모두 3 명입니다 - stringify_keys를 사용하는 것은 앞에서 언급했듯이 키의 첫 번째 레벨에서만 작동합니다 - 중첩되지 않고 배열이 아닌 것입니다 ... 그래서 모든 작업을 수행 할 수있는 방법이 있습니다 노드? –