Site cover image
Ruby on Rails リンクを生成するlink_toヘルパーで確認ダイアログ(confirm)を出す

リンクを生成してくれるlink_toヘルパーは、Ruby on Railsの数あるヘルパーのうちでもよく使われます。

link_toヘルパーは、リンクの記述をシンプルにするだけでなく、簡単に確認ダイアログ(confirm)を出すこともできます。

このエントリでは、Ruby on Rails 5においてlink_toヘルパーで確認ダイアログを出す方法を紹介します。

確認ダイアログ(confirm)を出したいケースとしてよくあるのは、削除ボタンだと思います。

削除ボタンを押したときに確認ダイアログを出すには、link_todataオプションに{ confirm: "本当に良いですか?" }のようなハッシュを渡します。

<%= link_to("削除する", url_for(...), method: :delete, data: { confirm: "本当に良いですか?" }) %>

削除は危険な操作なので、ボタンを赤くするためにCSSクラスを付与したいときはどうすれば良いでしょうか?

実は「confirmを出しつつボタンのスタイルを変える」という、一見するとなんでもないところでハマってしまいました。

link_toのドキュメントを見ると、引数は次のようになっています。

link_to(name = nil, options = nil, html_options = nil, &block)

data, methodはoptionsでclassはhtml_optionsだと勝手に思っていたのですが、どうやらclassもoptionsに含めるようです。

下記のようにすると上手くできます。

<%= link_to("削除する", url_for(...), method: :delete, data: { confirm: "本当に良いですか?" }, class: "btn btn-danger") %>

以上です。

このエントリでは、Ruby on Rails 5においてlink_toヘルパーで確認ダイアログを出す方法を紹介しました。

Thank you!
Thank you!
URLをコピーしました

コメントを送る

コメントはブログオーナーのみ閲覧できます