経緯

Railsではlink_toヘルパーにdata: {confirm: 'よろしいですか?'}のように書くと、リンクをクリックしたときに確認のアラートが出るようにできます。
ただ、いつもどこでも、ajaxを飛ばすなど、リンク先に遷移するわけではありません。

そういうときに、confirmでOKされたときにだけ実行するJSの書き方。ここではCoffeeScriptを利用します。

やり方

やり方は簡単以下のとおり。

ここで、data-confirmがOKされたとき、’confirm:complete’というイベントが発火します。それを捉えて処理を実行するようになっています。

まとめ

このくらいの場合であれば、JSのconfirm()関数を利用して作ってやってもいいかもしれませんが、Rubyで書いてやったほうがI18n対応が楽になります。Railsではconfirm:completeのような独自のイベントをたくさん持っているので、イベント系で困ってもググれば意外と出てくるかもしれません。