我是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"
}
语法这么简单吗?有更好的方法吗?
答案 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