Rails7になってJavaScript周りが色々変わって、従来どおりの `<%= link_to “Sign Out”, destroy_user_session_path, method: :delete %>` という記法では動作しなくなっていた。
追加で色々準備が必要になっているようなのでメモ。
importmap-rails のインストール
Gemfileに gem 'importmap-rails'
が無ければ追加する。
docker-compose run web bundle add importmap-rails
インストールコマンドの実行
docker-compose run web rails importmap:install
これで Rails7 で JavaScript を書く環境ができた。
link_to の記述方法の変更
<%= link_to 'Log out', logout_path, data: { turbo_method: :delete }, class: 'text-gray-700 block px-4 py-2 text-sm' %>
`data: { turbo_method: :delete }` になった点に注意。
さあ、これで動作するか!と思ったけどまだ動作しない。
JSライブラリを追加する
以前は自動でRailsのJSライブラリがインストールされていた気がしたが、Rails7ではマニュアルで導入。
docker-compose run web rails turbo:install stimulus:install
turbo-rails と stimulus という JSライブラリが Rails にインストールされた。
これで無事動作した!