リンクを生成してくれるlink_to
ヘルパーは、Ruby on Railsの数あるヘルパーのうちでもよく使われます。
link_to
ヘルパーは、リンクの記述をシンプルにするだけでなく、簡単に確認ダイアログ(confirm)を出すこともできます。
このエントリでは、Ruby on Rails 5においてlink_to
ヘルパーで確認ダイアログを出す方法を紹介します。
確認ダイアログ(confirm)を出したいケースとしてよくあるのは、削除ボタンだと思います。
削除ボタンを押したときに確認ダイアログを出すには、link_to
のdata
オプションに{ 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
ヘルパーで確認ダイアログを出す方法を紹介しました。
コメントを送る
コメントはブログオーナーのみ閲覧できます