3

我很难弄清楚如何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 })

我试过谷歌,但仍然无法弄清楚。有任何想法吗?

4

1 回答 1

4

我想你想要的是这样的:

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

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

此外,您应该do为任何不是 ruby​​ 代码执行的内容(如haml_tag或 rails helper like form_for)省略块部分。在 HAML 中,空白很重要,因此隐含了嵌套块结构。

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

于 2013-01-03T02:34:47.320 回答