如果 post.published?
.post
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
除此以外
.post.gray
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
我用rails helper实现了它,看起来很难看.
= content_tag :div, :class => "post" + (" gray" unless post.published?).to_s do
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
第二种变体:
= content_tag :div, :class => "post" + (post.published? ? "" : " gray") do
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
是否有更简单和特定于haml的方式?
UPD.特定于Haml,但仍然不简单:
%div{:class => "post" + (" gray" unless post.published?).to_s}
/ Post stuff
Run Code Online (Sandbox Code Playgroud) 试图用一种更简洁的方式在HAML和Ruby中表达这个条件,也许用三元运算符:
- if @page.nil?
%br (nothing yet)
- else
%br #{@page.name}
Run Code Online (Sandbox Code Playgroud)
(根据Neat方式寻找类似的方法来有条件地测试是否在HAML模板中添加类)
你的帮助将不胜感激:)