アプリケーションの多くのページで使用する共通のサブレイアウトがあります。それをレンダリングするに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 %>
ました(ハイフンに注意してください)。何も機能していないようです。