[解決済み】RubyでYAMLファイルをパースするには?
2022-04-06 16:08:25
質問
以下の内容のYAMLファイルをパースする方法を知りたいです。
---
javascripts:
- fo_global:
- lazyload-min
- holla-min
現在、私はこのようにパースしようとしています。
@custom_asset_packages_yml = (File.exists?("#{RAILS_ROOT}/config/asset_packages.yml") ? YAML.load_file("#{RAILS_ROOT}/config/asset_packages.yml") : nil)
if !@custom_asset_packages_yml.nil?
@custom_asset_packages_yml['javascripts'].each{ |js|
js['fo_global'].each{ |script|
script
}
}
end
しかし、うまくいかないようで、値がnilであるとのエラーが出ます。
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
これを試すと、文字列全体(fo_globallazyload-minholla-min)が出力されるんです。
if !@custom_asset_packages_yml.nil?
@custom_asset_packages_yml['javascripts'].each{ |js|
js['fo_global']
}
end
解決方法は?
私が見落としているのかもしれませんが、なぜファイルをパースしようとするのでしょうか?YAMLをロードして、結果として得られるオブジェクトを調べればよいのではないでしょうか?
サンプルのYAMLが
some.yml
であれば、これ。
require 'yaml'
thing = YAML.load_file('some.yml')
puts thing.inspect
は私に
{"javascripts"=>[{"fo_global"=>["lazyload-min", "holla-min"]}]}
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] YAML の文字列を複数行に渡って分割するには?
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] YAMLとJSONの違いは何ですか?
-
[解決済み] PythonでYAMLファイルをパースするには?
-
[解決済み】YAMLでブロックコメントを行うには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyのメソッド'to_sym'は何をするのですか?
-
[解決済み] Rubyでファイル名を変更するには?
-
[解決済み] Rubyの除算はなぜ10進数ではなく整数を返すのですか?
-
[解決済み] Ruby プログラムに一定時間待つように指示する
-
[解決済み] Ruby Detect方式
-
[解決済み] 文字列の文字をアルファベット順に並べるには?
-
[解決済み] ルビー、すべての単語の最初の文字を大文字にする
-
[解決済み] Capybaraを使ったドロップダウンでのオプションの選択方法
-
[解決済み] Ruby で PDF 文書を解析する
-
[解決済み] Rubyでガウス(正規分布)乱数を生成するコード