Haml 在网页上生成“{}”文本

Haml produces "{}" text on webpage

我正在尝试从 application.html.erb 转换为 application.haml,但我遇到了一个烦人的小问题,即左上角的“{}”。

我的代码如下所示:

  %body
    = render 'shared/header'
    .container
      = flash.each do |message_type, message|
        .alert{class: "alert-#{message_type}"}= message
        -# = content_tag :div, message, class: "alert alert-#{message_type}"
      = yield
      = render 'shared/footer'

注释掉的行是创建 div 的第二种方法,但它会产生同样的错误。

HTML 转换前如下所示:

  <body>
    <%= render 'shared/header' %>
    <div class="container">
      <% flash.each do |message_type, message| %>
          <%= content_tag(:div, message, class: "alert alert-#{message_type}") %>
      <% end %>
      <%= yield %>
      <%= render 'shared/footer' %>
    </div>
  </body>

这有什么问题吗?我该如何解决?

您似乎正在输出 flash.each 循环的 return 值

= flash.each do |message_type, message|

不要用 haml 写,但快速 google 看起来也许可以使用

- flash.each do |message_type, message|