2009-08-18 21 views
5

Quiero tener la capacidad de seleccionar varios elementos con casillas de verificación y eliminarlos en un solo lugar.Eliminar elementos múltiples por casilla de verificación

Este es el código:

<% @products.each do |p| %> 
<%= check_box_tag "product[]" , p.id %> 
<div class="product_image"> 
    <%= image_tag p.photo.url(:thumb) , :alt => "#{p.name}" %> 
</div> 
<%= link_to "<h3>#{p.name}</h3>" , edit_product_path(p) %> 
<div class="product_desc"> 
    <%=h truncate(p.description.gsub(/<.*?>/,''),80) %> 
</div> 
<div class="product_price"> 
    <%=h p.price %> 
</div> 
<div class="product_categories"> 
    <% for category in p.categories.find(:all) %> 
     <%=h category.name %> 
    <% end %> 
</div> 
<div id="produt_edit_nav"> 
    <%= link_to 'Show' , product_path(p) %> 
    <%= link_to 'Edit', edit_product_path(p) %> 
    <%= link_to 'Remove', product_path(p), :confirm => "Are you really want to delete #{p.name} ?", :method => 'delete' %> 
</div> 
<% end %> 
<div id="products_nav"> 
    <%= link_to "Add a new Product" , new_product_path %> 
</div> 

Las casillas de verificación me dan valores correctos, pero:

  1. ¿Cómo puedo darles diferentes valores de ID de código html, todos ellos tienen id="product[]"?

  2. ¿Cómo puedo eliminar los elementos marcados con un solo clic?

  3. Además, ¿cuál es el significado de esta parte: product[]?

Respuesta

7

1: Usted puede crear su propio ID de pasándolos como parte del hash de opciones:

<%= check_box_tag "product_ids[]", product.id, false, :id => "product_#{product.id}" %> 

para 2 y 3 Me recomiendo mirar this Railscast.

+0

Gracias por su ayuda, pero ¿por qué usamos "product_ids []" para el nombre? ¿Tiene alguna razón? – datisdesign

+2

Los corchetes al final del nombre de campo hacen que todos los valores se coloquen en una matriz. Entonces, cuando hagas params [: product_ids] será una matriz de todos los campos marcados. Si no tiene los corchetes, solo devolverá un valor verificado. – ryanb

+0

Gracias por su ayuda :) – datisdesign

Cuestiones relacionadas