确定块在传递给部分时是否具有任何内容

时间:2013-02-08 00:25:18

标签: ruby-on-rails-3

<%= 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 %>

1 个答案:

答案 0 :(得分: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,则将采用默认值。