Если post.published?
Append класс, если условие истинно Haml
.post
/Post stuff
В противном случае
.post.gray
/Post stuff
Я реализовал это с помощником рельсы и кажется некрасиво.
= content_tag :div, :class => "post" + (" gray" unless post.published?).to_s do
/Post stuff
Второй вариант:
= content_tag :div, :class => "post" + (post.published? ? "" : " gray") do
/Post stuff
Есть ли более простой и Haml конкретным способом?
UPD. Хэмл-специфический, но все еще не простой:
%div{:class => "post" + (" gray" unless post.published?).to_s}
/Post stuff
просто боковое примечание для нескольких условий '{class: [('class1', если условие 1), ('class2', если condition2)]} '.. и т. д. –
Succintct и отлично - спасибо! –
Более кратким для нескольких условий: '{class: [(: class1 if cond1), (: class2 if cond2)]}' – Phrogz