我正在使用一个bootstrapping框架,它有以下代码片段,我经常使用它:
<div class="panel panel-default">
<div class="panel-heading">...</div>
<div class="panel-body">
...
</div>
</div>
(该片段实际上会更大,但我想从小处开始)
所以我认为我会构建一个部分并使用它,就像这样:
部分
<div class="panel panel-default">
<div class="panel-heading"><%= title %></div>
<div class="panel-body">
<%= yield %>
</div>
</div>
使用示例
<%= render partial: "panel", locals: { title: "Hello" } do %>
Testing
<% end %>
但这显然不起作用。我收到以下错误:
'nil'不是与ActiveModel兼容的对象。它必须实现:to_partial_path。
我在这里做错了吗?我是否理解偏错?
答案 0 :(得分:0)
为了使yield
能够正常运作,我认为除了render :layout
之外,您还需要使用:partial
代替/:
<%= render layout: "panel", locals: { title: "Hello" } do %>
Testing
<% end %>
阅读PartialRenderer示例以获取更多信息