HTML 在 Rails 视图中重复的片段
HTML Snippets that repeat in the Rails views
我正在使用一个引导框架,它有以下代码片段,我经常使用它:
<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' is not an ActiveModel-compatible object. It must implement :to_partial_path.
我是不是做错了什么?我理解错了吗?
为了 yield
工作我认为你需要使用 render :layout
而不是 of/in 除了 :partial
:
<%= render layout: "panel", locals: { title: "Hello" } do %>
Testing
<% end %>
阅读 PartialRenderer 示例以获取更多信息
我正在使用一个引导框架,它有以下代码片段,我经常使用它:
<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' is not an ActiveModel-compatible object. It must implement :to_partial_path.
我是不是做错了什么?我理解错了吗?
为了 yield
工作我认为你需要使用 render :layout
而不是 of/in 除了 :partial
:
<%= render layout: "panel", locals: { title: "Hello" } do %>
Testing
<% end %>
阅读 PartialRenderer 示例以获取更多信息