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 にインストールされた。

これで無事動作した!