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:
Come posso dare loro diversi valori ID per il codice html, tutti hanno
id="product[]"
?Come eliminare gli elementi selezionati con un clic?
Inoltre, qual è il significato di questa parte:
product[]
?
Grazie per il vostro aiuto, ma perché usiamo "product_ids []" per il nome, è questo un motivo? – datisdesign
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
Grazie per l'aiuto :) – datisdesign