Techioz Blog

Rails object.to_yaml の先頭にダッシュはありません

概要

すべての to_yaml 出力には、先頭に 3 つのダッシュが付いています。

---
a:
  b:
    c: soemthing

先頭のダッシュなしでオブジェクトを yaml に変換するにはどうすればよいですか?

解決策

内部では、to_yaml は Psych を使用してデータを解析し、出力します。

指定できるオプションのパラメータはありますが (ここにリストされています)、先頭のダッシュを抑制するものはありません。

最も簡単な方法は、ダッシュを gsub で削除することです。

object.to_yaml.gsub(/^---$/, "")

または、Ruby 2.4 以降では、delete_prefix を使用できるようになり、読み取りが少し良くなります。残ったものも処分します :

object.to_yaml.delete_prefix!("---\n")