我很难弄清楚如何让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 })
我已经尝试了谷歌,但仍然无法弄明白。有什么想法吗?
答案 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,而后者应该返回标记。