我有一个常见的子布局,我在我的应用程序的许多页面上使用它。为了渲染它,我使用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
块之外,那么它可以工作。该数组在那里并已填充。我究竟做错了什么?我也尝试过使用<%- @posts.each %>
(注意连字符)。似乎没有任何工作。