2009-08-18 13 views
5

Je veux avoir cette possibilité de sélectionner plusieurs éléments avec des cases à cocher et de les supprimer en un seul endroit.Supprimer plusieurs éléments par case à cocher

Voici le code:

<% @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> 

Les cases me donnent des valeurs de droite, mais:

  1. Comment puis-je leur donner des valeurs différentes id pour le code html, ils ont tous id="product[]"?

  2. Comment puis-je supprimer les éléments cochés en un clic? En outre, quelle est la signification de cette partie: product[]?

Répondre

7

1: Vous pouvez créer votre propre Ids en les faisant passer dans le cadre du hachage Options:

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

Pour 2 et 3 je recommande regarder this Railscast.

+0

Merci pour votre aide, mais pourquoi nous utilisons "product_ids []" pour le nom, est-ce une raison? – datisdesign

+2

Les crochets à la fin du nom du champ entraînent le placement de toutes les valeurs dans un tableau. Donc quand vous faites params [: product_ids] ce sera un tableau de tous les champs cochés. Si vous n'avez pas les crochets, cela ne renverra qu'une seule valeur cochée. – ryanb

+0

Merci pour votre aide :) – datisdesign

Questions connexes