結論
Gemfileでwebpacker
のバージョンを ~> 5.0
と指定すればエラーが出なくなる。
なぜかはわからない。
詳細
やりたかったこと
Railsアプリでscaffoldを使ってリソースを作りたかった。
環境
- ruby 3.1.2
- rails 6.1.6
- bundle 2.2.17
やったこと
基本的にRailsチュートリアル第2章に従っています。
-
rails new toy_app
でアプリを生成、cd toy_app
で移動 - Gemfileを下記のように書き換え
-
bundle config set --local without 'production'
で設定 -
bundle install
でgemのインストール rails webpacker:install
-
rails generate scaffold User name:string email:string
でリソースを作ろうとする
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '3.1.2'
gem 'rails', '6.1.6'
gem 'puma', '4.3.6'
gem 'sass-rails', '6.0.0'
gem 'webpacker', '4.0.7'
gem 'turbolinks', '5.2.0'
gem 'jbuilder', '2.9.1'
gem 'bootsnap', '1.11.1', require: false
group :development, :test do
gem 'sqlite3', '1.4.2'
gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
gem 'web-console', '4.0.1'
gem 'listen', '3.7.1'
gem 'spring', '2.1.0'
gem 'spring-watcher-listen', '2.0.1'
end
gem 'rexml', '~> 3.2', '>= 3.2.5'
gem 'net-smtp'
gem "psych", "< 4.0.0"
gem "matrix"
group :test do
gem 'capybara', '3.37.1'
gem 'selenium-webdriver', '3.142.4'
gem 'webdrivers', '4.1.2'
end
group :production do
gem 'pg', '1.1.4'
end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
期待した挙動
invoke active_record
create db/migrate/20190820002503_create_users.rb
create app/models/user.rb
.
.
.
と問題なくUserリソースが生成される。
実際の挙動
'visit_Psych_Nodes_Alias': Unknown alias: default (Psych::BadAlias)
とエラーが出る。
解決方法
結論に記載した通り、Gemfileのwebpackerの部分を
gem 'webpacker', '~> 5.0'
と書き換えてbundle installし直してからやり直すと期待した挙動になる。
なんでなんだろう。