Как мне создать частичное из этого списка? - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть следующий список:

<% @backgrounds.each do |background| %>
 <tr>
   <td><%= background.image.url %></td>
   <td><%= link_to 'Show', background %></td>
   <td><%= link_to 'Edit', edit_background_path(background) %></td>
 </tr>
<% end %>

Я пытаюсь использовать это с другими контроллерами.Это то, что у меня есть:

<%= render partial:'image_listing', locals:{images:@backgrounds} %>

<% images.each do |image| %>
  <tr>
    <td><%= image.image.url %></td>
    <td><%= link_to 'Show', image %></td>
    <td><%= link_to 'Edit', edit_image_path(image) %></td>
  </tr>
<% end %>

Существует ли более общая версия edit_image_path?

Ответы [ 2 ]

2 голосов
/ 21 ноября 2011
<%= render partial: "background", :collection => @backgrounds %>

# _background.html.erb
<tr>
  <td><%= background.image.url %></td>
  <td><%= link_to 'Show', background %></td>
  <td><%= link_to 'Edit', edit_background_path(background) %></td>
</tr>

Если вы вызываете частичное с тем же именем объекта, который вы хотите перебрать, самая короткая форма будет

<%= render @backgrounds %>

Если вы не можете следовать этому соглашению, используйте параметры :collection и :partial, чтобы настроить отображение.

См. ActionView::Partials.

0 голосов
/ 22 ноября 2011

Общая версия edit_background_path выглядит как edit_polymorphic_path.Это делает возможным следующее:

<%= render partial: 'image_listing', locals:{ images:@backgrounds } %>  

<% images.each do |image| %>
  <tr>
    <td><img class='thumb' src='<%= image.image.url %>' /></td>
    <td><%= link_to 'Show', image %></td>
    <td><%= link_to 'Edit', edit_polymorphic_path(image) %></td>
    <td><%= link_to 'Destroy', image, confirm: 'Are you sure?', method: :delete %></td>
  </tr>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...