Ruby on rails 在erb模板中创建实例变量

Ruby on rails 在erb模板中创建实例变量,ruby-on-rails,erb,Ruby On Rails,Erb,假设我有两个erb视图:一个列表视图和一个显示视图,我想在列表视图中呈现显示视图 列表视图 <% @vehicles.each do |vehicle| %> <h2><%= vehicle.type %></h2> <ul> <% vehicle.accessories.each do |accessory| %> <li><% accessory.title %><

假设我有两个erb视图:一个列表视图和一个显示视图,我想在列表视图中呈现显示视图

列表视图

<% @vehicles.each do |vehicle| %>
  <h2><%= vehicle.type %></h2>
  <ul>
    <% vehicle.accessories.each do |accessory| %>
      <li><% accessory.title %></li>
    <% end %>
  </ul>
<% end %>

我想您可能想让
显示
查看
部分
。比如:

<% @vehicles.each do |vehicle| %>
  <%= render "show" %>
<% end %>
<h2><%= vehicle.type %></h2>
<ul>
  <% vehicle.accessories.each do |accessory| %>
    <li><% accessory.title %></li>
  <% end %>
</ul>

然后,您可以执行以下操作:

<% @vehicles.each do |vehicle| %>
  <%= render "path/to/show_partial", locals: {vehicle: vehicle} %>
<% end %>  

当然,你会想:

  • 使用真实的
    路径/to/show_partial
    ,无论它是什么,以及
  • 进行一些快速加载,这样您就不会进行大量的N+1查询

我想您可能想让
显示
查看
部分
。比如:

<% @vehicles.each do |vehicle| %>
  <%= render "show" %>
<% end %>
<h2><%= vehicle.type %></h2>
<ul>
  <% vehicle.accessories.each do |accessory| %>
    <li><% accessory.title %></li>
  <% end %>
</ul>

然后,您可以执行以下操作:

<% @vehicles.each do |vehicle| %>
  <%= render "path/to/show_partial", locals: {vehicle: vehicle} %>
<% end %>  

当然,你会想:

  • 使用真实的
    路径/to/show_partial
    ,无论它是什么,以及
  • 进行一些快速加载,这样您就不会进行大量的N+1查询

好吧,有时节目视图也可以自己查看,它仍然可以作为一个局部视图使用吗?另外,
路径/to/show_部分
是路由中的路径还是文件本身的路径?当然,您可以在
show.html.erb
视图中呈现
\u show.html.erb
部分。(注意部分以下划线开头。)并且,路径是指向文件本身的路径。因此,如果
\u show.html.erb
部分保存在
app/views/vehicles
中,那么您将执行类似于
渲染部分:“vehicles/show”,本地人:{vehicle:vehicler}
。那么,show视图有时也可以自己查看,它仍然可以作为部分工作吗?另外,
路径/to/show_部分
是路由中的路径还是文件本身的路径?当然,您可以在
show.html.erb
视图中呈现
\u show.html.erb
部分。(注意部分以下划线开头。)并且,路径是指向文件本身的路径。因此,如果
\u show.html.erb
部分保存在
app/views/vehicles
中,那么您将执行类似
渲染部分:“vehicles/show”,本地人:{vehicle:vehicler}