原因と解決法
Railsで個人開発しているサービスで登録情報を削除する際のアラート機能を実装しようとしたところアラートが表示されなかったので解決方法を共有しようと思います。
最初は以下のように記述することでアラートが表示されると思っていましたが、実際には表示されませんでした。
アラートが表示されない
<%= button_to "削除", admin_shop_path(shop), method: :delete, data: { confirm: "本当に削除しますか?" }, class: "btn btn-outline-danger" %>
アラートが表示されない理由としては、Rails7ではTurbo(Hotwire)が導入されたことにより、「confirm」ではなく「turbo_confirm」を使用して記述しなくてはならなくなっていたことが原因で、以下のように記述することでアラートが表示されるようになりました。
アラートが表示される
<%= button_to "削除", admin_shop_path(shop), method: :delete, form: { data: { turbo_confirm: "本当に削除しますか?" } }, class: "btn btn-outline-danger" %>
変更点まとめ
上記2つのコードの変更点は以下になります。
変更点
# 変更前
data: { confirm: "本当に削除しますか?" }
# 変更後
form: { data: { turbo_confirm: "本当に削除しますか?" } }
今回は以上となります。
ご覧いただきありがとうございました。
参考記事