<%= 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 %>
<%= 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 %>
我认为你应该看看这个文档: 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 的内容未定义,它将采用默认值。