今までRailsでデータ削除リンクを作るときに下記のようにconfirmオプションを使ってダイアログを表示させていたかと思う。

<%= link_to "削除", user, method: :delete, confirm: "本当に削除しますか?" %>

 しかし、Rails4.1の場合、Chromeで表示してみるとHTMLタグは以下のようになっている。

<a confirm="本当に削除しますか?" data-method="delete" href="/users/1" rel="nofollow">削除</a>

 本来「data-confirm」となってほしいところが「confirm」となってしまい、リンクをクリックしても確認ダイアログが表示されず、そのまま削除が実行されてしまう。

タイプミスだと思ったが、下記の書籍によるとRails4.0で廃止予定、Rails4.1より完全に廃止されたそうだ。

実践Ruby on Rails 4 現場のプロから学ぶ本格Webプログラミング

 ちなみに、GoogleBooksにも表示されていた。

 実践Ruby on Rails 4 現場のプロから学ぶ本格Webプログラミング – 黒田 努 – Google ブックス

対処方法は?

 廃止と言われても、確認もなしに削除してしまうのは困る。しかし、aタグをベタ書きしなければならないかというとそうではなく、ただ書き方を変えればいい。Rails4.1ではdata:オプションを使って以下のように書くと正常に動作する。

<%= link_to "削除", user, method: :delete, data: {confirm: "本当に削除しますか?"} %>

 解決方法を紹介しているサイトは見つからなかったので、おそらくRails4.1を使っている人はほとんどいないのだろうか?