将content_tag与HAML一起使用

时间:2013-01-03 02:08:19

标签: ruby-on-rails haml content-tag

我很难弄清楚如何让content_tag与HAML合作。

如果没有HAML,我会做这样的事情:

<%= content_tag "div", id: "instagrams", data: { instagrams: @instagrams } do %>
<% end %>

我尝试了以下内容,但无济于事:

%div#instagrams{ instagrams: @instagrams }

%div{ id: "instagrams", data: { instagrams: @instagrams } } do

- haml_tag("div", id: "instagrams", data: { instagrams: @instagrams })

我已经尝试了谷歌,但仍然无法弄明白。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

我认为你想要的是:

#instagrams{ data: { instagrams: @instagrams.to_json } }

在HAML中,您不需要%div(这是标记的默认设置),因此您只需输入ID,您仍然需要为数据属性而不仅仅是HTML属性定义data:

此外,对于任何非ruby代码执行的内容(如do或类似haml_tag的rails帮助程序),您应该省略form_for块部分。在HAML中,空白区域非常重要,因此隐含了嵌套块结构。

haml_tag示例的问题可能是您使用了-而不是=。在HAML中,前者表示执行不返回标记的ruby,而后者应该返回标记。