結論
クラス名に変数代入を使用する。
背景
DBからデータを取得して一つずつ表示する機能を実装していました。
動的に表示非表示を切り替える処理を実装するときにrailsのviewファイルに
<div>class="section1"</div>
<div>class="section2"</div>
<div>class="section3"</div>
<div>class="section4"</div>
.
.
.
<div>class="section10"</div>
と記載して都度display:none
で表示非表示を切り替えるというものでした。
何が悪なのか
railsの設計思想の一つにDRY(Don’t Repeat Yourself)があります。「コードを重複させない」という意味合いです。
可読性が下がる。コード量が増える意味合いでも極力コードの重複は減らさなければなりません。
具体例
今回はDBから取得したデータを一つずつ表示非表示するというものでした
class=<%= "section#{question.id}" %>
このようにすることでデータのidに紐付けたクラス名を作成することができます。
100行でも1,000行でもでそれぞれのクラス名を付与した要素を作ることができます。