Rails 7でのlink_to削除時にturbo_confirmで確認ダイアログを表示する方法
開発中に遭遇した不具合の解消方法を調査したので、備忘録も兼ねて投稿します。
環境
ruby: 3.2.2 rails: 7.0.6
Rails 7での削除リンクの振る舞いの変更
link_to
を使用して、掲示板の各項目を削除するリンクを作成する場合、turbo_method: :delete
を使用しないと、期待通りの動作をしません。
- <%= link_to '削除', board, method: :delete %> + <%= link_to '削除', comment, data: { turbo_method: :delete } %>
詳細は以下のブログをご参照ください。
これに併せて、data: { confirm: 'Message' }
のような確認ダイアログも動作がしないようで、書き方を変える必要があるようです。
確認ダイアログの表示方法
前述の通り、従来のdata: { confirm: 'Message' }
のようなJavaScriptの確認ダイアログが動作しない場合、turbo_confirm
を使用して確認ダイアログを表示することができるようです。
turbo_confirm
の基本的な使用方法は以下のようになります:
<%= link_to '削除', board, data: { turbo_method: :delete, turbo_confirm: '削除してもよろしいですか?' } %>
このdata: { turbo_confirm: 'Message' }
を追加するだけで、リンクをクリックした際に確認ダイアログが表示されました。