我有这个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" ) ) ) }
但是,有没有更短的方法呢?
最佳答案
我并没有仔细查看您的代码(这有点让人困惑)来告诉您是否有更短的方法,但是我可以说,编写一个辅助方法比在其中包含所有逻辑要好得多风景。如果是或情况下的语句,则使用普通的旧的辅助方法可以使工作更加整洁,而长度并不是真正的因素。这样一来,您就可以用简单易懂的方式替换 View 中的长条件语句,例如%div{ :class => kudobox(kudos) }
关于ruby-on-rails - 使用HAML的条件标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3076922/