Rails の View(ERB) でカスタムデータ属性を設定したい時の方法
Rails の ERB で View のコードを書いている時にカスタムデータ属性( custom data attributes )を使いたい時がある.
HTML なら素直にdata-*
という形式で書けば良いが, Rails ではどのように書くかを調べてみても中々見つけられなかった.
そんな中,幸運にもチームメンバーが知っており,設定方法を教えてもらったため今回はそれについてまとめておく.
設定方法
例えばdata-delay
というカスタムデータ属性を作りたい場合,ERB では以下のように data: { delay: 属性名 }
という形式で書けば良い.
今回の場合はdata-delay
という属性を設定した場合を記述する.
<%= image_tag('', alt:'テスト画像', data: { delay: image_path('hoge/test.png') }) %>
ブラウザで確認すると以下のようになる.
<img alt="テスト画像" data-delay="/assets/hoge/test-2nlgadihfdnkddvhiwdkwuiwjjkgiwl3dnfl57398482737dlfowpsjdhfgsa.png" src="/assets/hoge/test-2nlgadihfdnkddvhiwdkwuiwjjkgiwl3dnfl57398482737dlfowpsjdhfgsa.png" class="test-class">
まとめと所感
今回は Rails の View(ERB) でカスタムデータ属性の設定方法についてまとめてみた. 内容はめちゃくちゃ小ネタではあったが,しばらく経ってからまたカスタムデータ属性を設定したい時に「アレ?どうやるんだっけ?」となりそうなので,この記事は今後ちょくちょくチェックしそうな気がする.
追記
もっとよく調べてみたら,Rails の API ドキュメントに例がちゃんと書いてあった. こちらの TechRacho の記事経由で Rails の APIドキュメント を見つけることができた. techracho.bpsinc.jp