我有这个haml:
.kudobox
%div.kudos= number_to_human_size_not_bytes kudos
%div= (kudos == 1 || kudos == -1) ? "kudo" : "kudos"
现在我希望.kudobox
有一个positive
,negative
或zero
类,具体取决于荣誉的数量:
-# < 0 kudos
<div class="kudobox negative">
-# == 0 kudos
<div class="kudobox zero">
-# > 0 kudos
<div class="kudobox positive">
我怎样才能做到这一点?感谢。
我知道我可以
%div{ :class => ( kudos < 0 ? "kudobox negative" : ( kudos == 0 ? "kudobox zero" : ( kudos > 0 ? "kudobox positive" : "kudobox impossible" ) ) ) }
但是有没有更短的方式?
答案 0 :(得分:10)
我没有仔细查看你的代码(这有点令人困惑),告诉你是否有更短的方式,但我可以说你写得好得多一个辅助方法,而不是在视图中拥有所有逻辑。使用普通的 if 或 case 语句的辅助方法可以更干净地完成工作,然后长度实际上不是一个因素。这样,您可以在视图中替换长条件语句,例如
%div{ :class => kudobox(kudos) }
答案 1 :(得分:0)
如果你只想要没有助手的短代码,那么你就是:
.kudobox(class="#{kudos<0?'negative':kudos==0?'zero':'positive'}")