【问题标题】:Using content_tag with HAML将 content_tag 与 HAML 一起使用
【发布时间】:2013-01-03 02:08:19
【问题描述】:

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

我已经尝试过 Google,但仍然无法弄清楚。有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    我想你想要的是这样的:

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

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

    此外,对于任何不是 ruby​​ 代码执行的东西(如 haml_tag 或像 form_for 这样的 rails 助手),您应该省略 do 块部分。在 HAML 中,空白很重要,因此隐含了嵌套块结构。

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

    【讨论】:

    • 嘿安德鲁,你的解决方案奏效了。非常感谢!但是,我在 json 中需要它:#instagrams{ data: { instagrams: @instagrams.to_json } }
    • 酷。是的,这取决于@instagrams 对象实际上是什么。
    猜你喜欢
    • 2013-09-26
    • 1970-01-01
    • 2010-12-21
    • 2013-02-19
    • 2010-10-10
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    相关资源
    最近更新 更多