YAML ファイルを読み込む方法

yamlrequire して、YAML.load_file を使うとハッシュとして読み込める。キーはシンボルではなく文字列になっている。

require "yaml"

config = YAML.load_file("config.yml")

hoge = config[Rails.env]["some_settings"]["hoge"]

参考 

Ruby で YAML を扱う方法を知った | 北村聡士のブログ

Ruby で YAML ファイルを取り扱う方法 | Permanent Til

Ruby の YAML.load で yaml 形式の文字列 → オブジェクト変換時のエラー | EasyRamble

library yaml (Ruby 2.6.0)

module YAML (Ruby 2.6.0)

module Psych (Ruby 2.6.0)

singleton method Psych.load_file (Ruby 2.6.0)

symbolize_keys / symbolize_keys!

文字列のキーをシンボルに変換する。

参考:

Ruby の YAML とシンボルと私 | TECHSCORE BLOG

symbolize_keys  – Hash | Ruby on Rails API [Official]

symbolize_keys! – Hash | Ruby on Rails API [Official]

HashWithIndifferentAccess

文字列とシンボルのどちらのキーでもアクセスできるように拡張されたハッシュ。

参考:

ActiveSupport::HashWithIndifferentAccess | Ruby on Rails API [Official]

with_indifferent_access

文字列とシンボルのどちらのキーでもアクセスできるようにハッシュを拡張する。

参考:

with_indifferent_access – Hash | Ruby on Rails API [Official]

Hashie

require "hashie"

config = Hashie::Mash.load("config.yml")

hoge = config.development.some_settings.hoge

参考:

Ruby で YAML ファイルを load するもう1つの便利な方法 – Qiita

intridea/hashie: Hashie is a collection of classes and mixins that make hashes more powerful – GitHub

ERB

参考:

YAML に ruby のコードを書く方法 | rochefort’s blog

Sinatra::ConfigFile で YAML の中で ERB の記法を使いたい – Qiita

Sinatra の database.yml で dotenv を使いたい | たくみん成長日記

Ruby で yaml ファイルに環境別の設定を書いて、さらに ERB のコードを使えるようにする | 北村聡士のブログ

Using ERB in YAML Configuration File | urge to punt technologies

YAML with erb is not parsing – Stack Overflow

Dynamically generate fixtures in Rails via loop in YAML file – Stack Overflow

タグ

参考:

YAML のタグ (!Ref など) を Ruby で扱う – Qiita

Tips

参考:

Yaml についてあれこれ忘れるので、戯れて覚える – Qiita

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA