Rails new時の環境構築時エラー(Psych::BadAlias: Unknown alias: default)
発生している問題
rails *6.0.3.6* new プロジェクト名
コマンドを実行後、rails aborted! Psych::BadAlias: Unknown alias: default
のエラーが出現しました。$ rails _6.0.3.6_ new プロジェクト名 ~省略~ rails aborted! Psych::BadAlias: Unknown alias: default /Users/name/workspace/practice_app/プロジェクト名/bin/rails:9:in `<top (required)>' /Users/name/workspace/practice_app/プロジェクト名/bin/spring:15:in `require' /Users/name/workspace/practice_app/プロジェクト名/bin/spring:15:in `<top (required)>' ./bin/rails:3:in `load' ./bin/rails:3:in `<main>' Tasks: TOP => app:template (See full trace by running task with --trace)
lsコマンド
で、フォルダが作成できているのかを確認したところRails new
したフォルダは問題なく作成出来ていました。$ ls プロジェクト名のフォルダ
その後、試しにRailsサーバーが立ち上がるかコマンドを実行してみました。すると、
gem 'psych (~> 3.1)'
が見つかりませんというエラーが出現しました。確認すると、gemfileには、psych
というgemはありませんでした。$ rails s Could not find gem 'psych (~> 3.1)' in locally installed gems. The source contains the following gems matching 'psych': * psych-4.0.3 Run `bundle install` to install missing gems.
調べてみますと、Rubyには標準で
psych
というYAML解釈用のGemがあります。
しかし、4系列では解釈法が変わった(Psych.load
が内部でPsych.safe_load
を使用するように変更した)ため、今まで読み込むことができていたYAMLファイルが今後読み込みエラーになる可能性があるということです。3系列でないとdatabase.ymlの解釈に失敗することが考えられます。
つまり、'psych (~> 3.1)'
を使いましょうというエラーだったんですね。Ruby の YAML.load が非互換になる(かもしれない) - Secret Garden(Instrumental)
解決法
gemfileに
gem 'psych', '~> 3.1’
を追加後、bundle install
# gemfile gem 'psych', '~> 3.1'
実行後、
$ bundle install ~省略~ Installing psych 3.3.2 with native extensions Bundle complete! 18 Gemfile dependencies, 76 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed.
gem 'psych', '~> 3.1’
を無事インストールできました。Railsサーバーを立ち上げると、上手く立ち上がりました!
$ rails s => Booting Puma => Rails 6.0.4.7 application starting in development => Run `rails server --help` for more startup options Puma starting in single mode... * Version 4.3.11 (ruby 3.1.1-p18), codename: Mysterious Traveller * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://127.0.0.1:3000 * Listening on tcp://[::1]:3000
参考
Ruby の YAML.load が非互換になる(かもしれない) - Secret Garden(Instrumental)
エラーUnknown alias: defaultが出て、railsサーバを起動できない
補足情報(フレームワークのバージョン・OS)
- MacBook Air (M1, 2020)
- ruby
3.1.1
- rails
6.0.3.6