Posted at

【Rails】BEMのmodifier付きのclassを生成するhelperを作る

More than 3 years have passed since last update.


はじめに

特定の条件の時だけテキストの色を赤色にしたいのように、動的にBEMのmodifier付きのクラスを追加したいということはよくありますよね。

結構頻繁にあるなと思ってmodifier付きのclassを生成するhelperを作成しました。

今回は、Railsですがどのプロジェクトでも応用はきくとおもいます。


コード

早速コードにうつります。

def class_with_modifier(class_name, class_modifier)

"#{class_name}--#{class_modifier}" if class_modifier.present?
end

実際にはこういう感じで使います。

.hoge class="class_with_modifier('hoge', 'red')"

さて、なぜ

if class_modifier.present?

があるのかと思うかもしれないですが、別のhelperを作った時に、ある条件のときはmodifierをつけないで返すというようなことをしたいときがしばしばあったためです。

もしifの条件がないと hoge--みたいに意味のないclassが生成されるのが嫌だなと感じたので条件を追加しています。


終わりに

意外に使用頻度が高くてDRYにしておきたいなと思ったので、この機会にまとめてみました!

以上参考になれば幸いです!