0
1

More than 1 year has passed since last update.

visit_Psych_Nodes_Alias': Unknown alias: default (Psych::BadAlias) 解決方法

Last updated at Posted at 2022-08-06

概要

rails new 後にはじめてrails sしようとしたら遭遇したエラー

環境
windows10
Rails 6.0.5.1
ruby 3.1.2p20

PS C:\Users\ml\rails_tutorial_2\hello> rails s
=> Booting Puma
=> Rails 6.0.5.1 application starting in development
=> Run rails server --help for more startup options
Exiting
C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/psych-4.0.4/lib/psych/visitors/to_ruby.rb:430:in visit_Psych_Nodes_Alias': Unknown alias: default (Psych::BadAlias) from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/psych-4.0.4/lib/psych/visitors/visitor.rb:30:in visit'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/psych-4.0.4/lib/psych/visitors/visitor.rb:6:in accept' from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/psych-4.0.4/lib/psych/visitors/to_ruby.rb:35:in accept'

解決方法

gemfileに以下の記述を追加します。※バージョンは4より低いものを指定
gem 'psych', '~> 3.1'
そのうえで再度 rails sしたところ、無事にサーバが立ち上がりました。

原因について

psychはRuby 本体の default gemです。yamlはpsychに依存する形で書かれています。
psych 4.0 から YAML.loadが非互換になりました。それに起因して今回のエラーが起きたようです。
そのため、古いバージョンを指定することで対応できます。もちろん、最新バージョンを利用したうえで対応するのが理想的ではありますが。

参考

大変お世話になりました。ありがとうございます。
https://github.com/ruby/psych/pull/487
https://stackoverflow.com/questions/71191685/visit-psych-nodes-alias-unknown-alias-default-psychbadalias

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1