您可以使用 splat (*) 运算符来帮助定义 slim 中标签的条件属性,使用包含要添加的属性的哈希值。
http://www.rubydoc.info/gems/slim/frames#Splat_attributes__
splat 运算符将散列扩展为一组要添加到标签的属性。如果哈希为空,则不会添加任何属性。
例如,
- admin_classes = @User.admin? ? {class: "foo"} : {}
input *admin_classes
如果@User.admin? == true,它应该渲染
<input class="foo">
如果是@User.admin? == false,它应该渲染
<input>
对于像“类”这样的属性或者其他开启了属性合并的属性,你也可以这样做:
- admin_classes = @User.admin? ? {class: ["foo","bar"]} : {}
input *admin_classes class="biz"
如果@User.admin? == true,它应该渲染
<input class="foo bar biz">
如果是@User.admin? == false,它应该渲染
<input class="biz">