【问题标题】:Nesting an each loop within an ERB rendered layout is not iterating over any elements在 ERB 渲染布局中嵌套每个循环不会迭代任何元素
【发布时间】:2013-04-11 21:14:45
【问题描述】:

我有一个通用的子布局,我在我的应用程序的许多页面上都使用它。为了渲染它,我使用render layout: ...,然后将视图的其余部分放在块中:

<%= render layout: 'layouts/content-box', locals: { header: 'Foo' } do %>
  <% @posts.each do |post| %>
    <%= post.inspect %>
  <% end %>
<% end %>

这会产生一个空模板,实际上循环根本不会迭代。这曾经有效,但我们目前正在从 HAML 迁移:

= render layout: 'layouts/content-box', locals: { header: 'Foo' } do
  - @posts.each do |post|
    = post.inspect

我认为我发布的 HAML 是等效的,但显然不是。如果我将循环移到 render 块之外,那么它可以工作。该数组在那里并已填充。我究竟做错了什么?我也尝试过使用&lt;%- @posts.each %&gt;(注意连字符)。似乎没有任何效果。

【问题讨论】:

    标签: ruby-on-rails haml erb


    【解决方案1】:

    Gahhhh,这是因为我尝试渲染的布局仍然是 HAML 文件。一旦我也将它转换为 ERB,一切都按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-16
      • 2020-07-19
      • 2014-12-23
      • 2019-03-17
      • 2014-06-18
      • 2014-10-22
      • 2021-12-15
      • 1970-01-01
      相关资源
      最近更新 更多