以前のRailsはjquery-ujsを使っていたみたいで、rails-ujsでのdata-confirmダイアログの変更方法が見つからなかったのでjquery-ujsのoverride方法を参考にしながら、試行錯誤しつつdata-confirmmの挙動を変更しました。showConfirmDialog内をお好きなmodalモジュールに変更すれば動くはず。今回はUIKitを使っていたのでそれを使いました。
var handleConfirm = function(element) { if (!allowAction(this)) { Rails.stopEverything(element) } } var allowAction = function(element) { if (element.getAttribute('data-confirm') === null) { return true } showConfirmDialog(element); return false } var confirmed = function(element, result) { if (result.value) { // User clicked confirm button element.removeAttribute('data-confirm') element.click() } } var showConfirmDialog = function(link) { var message = $(link).attr('data-confirm'); UIkit.modal.confirm(message).then(function(){ confirmed(link, {value: true}); }); } $("a[data-confirm]").on('click',handleConfirm);