haml/css で if else をインラインでどのように記述しますか? ここに私の作業コードがあります:
- if unit > 10
= value
- else
.unit
= value
以下のようにインライン化しようとしましたが、うまくいきません。
%span{class: ('my-value') if unit > 10})
括弧が最初に評価されるため、単位が 10 より大きい場合、「my value」がクラスとして設定されます。
%span{class: ('my-value' if unit > 10)}
このような単純なケースでは、三項演算子を好みます。
%span{class: unit > 10 ? 'my-value' : nil}
単純な条件よりも複雑になった場合は、ヘルパーに抽出します。
%span{class: unit_class(unit)}
そしてヘルパーファイルで:
def unit_class(unit)
if unit > 10
'my-value'
else
'something-else'
end
end