最简单的部分语法通过haml传递locals

时间:2012-06-11 03:14:55

标签: ruby haml partials

我是Ruby / HAML的新手,我正在尝试简化部分语法以满足我的简单要求。例如,我想创建一个部分,它将传递变量以输出以下HTML:

<figure class="foo">
  <img src="path/to/img.png" />
  <figcaption>caption text here</figcaption>
</figure>

我正在寻找创建一个助手来获得近似的部分语法:

@(figure).foo {
  img: "path/to/img.png",
  caption: "caption text here"
}

语法这么简单吗?有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

不确定

figure_helper(:foo, 'path/to/img.png', 'caption text here')

然后在您的帮助文件中:

def figure_helper(cls='default_cls', img='rails.png', caption='uh oh! forgot caption!')
<<STMT
  <figure class="#{cls}">
    <img src="#{img}" />
    <figcaption>#{caption}</figcaption>
  </figure>
STMT
end

注意:如果您不熟悉定义字符串的here语句语法,请确保结束<<STMT从第1列开始。

在irb:

1.9.2p0 :016 > def figure_helper(cls='default_cls', img='rails.png', caption='uh oh! forgot caption!')
1.9.2p0 :017?>   <<STMT
1.9.2p0 :018">   <figure class="#{cls}">
1.9.2p0 :019">     <img src="#{img}" />
1.9.2p0 :020">     <figcaption>#{caption}</figcaption>
1.9.2p0 :021">   </figure>
1.9.2p0 :022"> STMT
1.9.2p0 :023?>   end
 => nil 
1.9.2p0 :025 > puts figure_helper(:foo, 'path/to/img.png', 'caption text here')
  <figure class="foo">
    <img src="path/to/img.png" />
    <figcaption>caption text here</figcaption>
  </figure>
 => nil