HAML元编程

时间:2011-05-19 20:41:15

标签: metaprogramming haml

假设我想渲染以下内容

<div id="foo" class="foo">
  Bar
</div>

在HAML中,我通常会写

#foo.foo Bar

是否有一种简单的方法可以执行以下操作?

#foo{ :class => id_for_this_tag }

我真正想要的是能够挂钩HAML的标记生成来清理一些视图。

1 个答案:

答案 0 :(得分:1)

示例中的代码应该按原样运行。以下一行:

#foo{:class => @my_class }

将生成以下HTML:

<div class='foobar' id='foo'></div>

假设@my_class = "foobar"已正确定义。

我不知道有任何方法可以进一步修剪它,但你可以使用这种格式逃脱任何事情。例如:

- bob = "silly"
#foo{:class => bob, :summary => "whatever", :arbitrary => "arbitrary"}

生成:

<div arbitrary='arbitrary' class='silly' id='foo' summary='whatever'>