2009-08-18 19 views
5

Desidero avere la possibilità di selezionare più elementi con caselle di controllo ed eliminarli in un unico posto.Elimina elementi multipli tramite casella di controllo

Questo è il codice:

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

Le caselle di controllo mi danno valori giusti, ma:

  1. Come posso dare loro diversi valori ID per il codice html, tutti hanno id="product[]"?

  2. Come eliminare gli elementi selezionati con un clic?

  3. Inoltre, qual è il significato di questa parte: product[]?

risposta

7

1: È possibile creare il proprio Ids passandoli come parte della hash opzioni:

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

Per 2 e 3 mi piacerebbe raccomando guardando this Railscast.

+0

Grazie per il vostro aiuto, ma perché usiamo "product_ids []" per il nome, è questo un motivo? – datisdesign

+2

Le parentesi quadre alla fine del nome del campo causano la collocazione di tutti i valori in una matrice. Quindi quando fai param [: product_ids] sarà una matrice di tutti i campi selezionati. Se non avessi le parentesi quadre, restituirebbe solo un valore verificato. – ryanb

+0

Grazie per l'aiuto :) – datisdesign

Problemi correlati