【Rails】RailsにおけるYAMLの基本的な書き方について


背景

railsを学習すると拡張子がymlになっているファイルをよく見かけるため、その書き方について調べてみました。
※内容に間違いなどがある場合はご指摘をよろしくお願いします。

Yamlとは

YAML(YAML Ain’t Markup Language)。構造化されたデータのフォーマットの一種で「.yml」で終わるファイル。他にXML、JSONなどがある。各種設定ファイル、ログファイル、データ保存・交換ファイルとして使われている。

Yamlの書き方

①スカラー&データ型

  • 文字列:
    '123'、"abc"
  • 数値:
    123、0.01
  • 真偽値:
    true、false、yes、no、on、off
  • Null:
    null、 ~
  • 日付:
    2021-01-01
  • タイムスタンプ:
    2021-01-01 00:00:00 +09:00
  • シンボル:
    :hoge

②配列
行頭に「-」をつける。「-」のあとは半角スペースを入れる。

- apple
- banana
- orange

# ["apple", "banana", "orange"]

半角スペースでインデントを入れると、ネストさせることもできます。

- fruit
-                  #空の「-」を付ける必要がある
  - apple
  - banana
  - orange

#["fruit", ["apple", "banana", "orange"]]

③ハッシュ
「キー: 値」で表す。「:」のあとは半角スペースを入れる。

subject: "Email Changed"

#{ "subject" =>  "Email Changed"}

ハッシュと配列のネストも可能です。

- name:  Tanaka
  email: [email protected]
- name:  Suzuki
  email: [email protected]

#[{"name"=>"Tanaka", "email"=>"[email protected]"},
# {"name"=>"Suzuki", "email"=>"[email protected]"}]

④rubyの記述を書く(ERB形式)
「<%= 内容 %>」という形式で表します。

root: <%= Rails.root.join("tmp/storage") %>

#{ "root" => "<%= Rails.root.join("tmp/storage") %>"}

⑤アンカーとエイリアス
yamlの記述を保存&呼び出しするために使う記述。アンカーは「&」、エイリアスは「*」。

name: &mark
      fuga
email: [email protected]
user: 
<<: *mark

#{ "name" => "fuga", "email => "[email protected]", "user" => "fuga" }

参考サイト・記事

https://magazine.rubyist.net/articles/0009/0009-YAML.html
https://qiita.com/tfrcm/items/5f8e4c5795ce41b214d1
https://zenn.dev/shuichi/articles/7d4a171d87a8e4938f35