Rails检查yield:area是否在content_for中定义

Wil*_*ung 93 layout yield ruby-on-rails

我想在布局级别根据实际模板定义进行条件渲染content_for(:an__area),任何想法如何完成?

小智 210

@content_for_whatever已弃用.content_for?改为使用,如下所示:

<% if content_for?(:whatever) %>
  <div><%= yield(:whatever) %></div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

  • Helper`content_for?`仅存在于Rails 3中.在Rails 2中,您可以使用`@content_for _...`实例变量. (16认同)

efa*_*cao 10

没有必要创建一个帮助方法:

<% if @content_for_sidebar %>
  <div id="sidebar">
    <%= yield :sidebar %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

当然在你看来:

<% content_for :sidebar do %>
  ...
<% end %>
Run Code Online (Sandbox Code Playgroud)

我一直使用它有条件地在一列和两列布局之间进行