0
<%= render :layout => "some_layout" do %>
  <p>Some stuff</p>
<% end %>

在“some_layout”中

<%= yield %>

有没有办法检测 yield 块是否有任何内容?例子:

<% if block_has_content? %>
   <%= yield %>
<% else %>
  <p>Default content</p>
<% end %>
4

1 回答 1

1

我认为你应该看看这个文档: http ://apidock.com/rails/ActionView/Helpers/CaptureHelper/content_for

您可以在某处定义:

 <% content_for :some_layout do %>
     some content
 <% end %>

在代码的另一部分:

<%= content_for(:some_layout) || 'Default content' %>

如果 :some_layout 的内容未定义,它将采用默认值。

于 2013-02-08T00:35:11.203 回答