2009-08-18 15 views
5

チェックボックスを含む複数の項目を選択して1か所で削除できるようにしたいと考えています。複数の項目をチェックボックスで削除する

これはコードです:

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

チェックボックスが私に正しい値を与えるが、:

  1. がどのように私はそれらのすべてがid="product[]"を持って、それらをHTMLコードに異なるID値を与えることができますか?

  2. ワンクリックでチェックしたアイテムを削除するにはどうすればよいですか?

  3. また、この部分の意味は次のとおりです。product[]

答えて

7

1:あなたはオプションのハッシュの一部としてそれらを渡すことで、独自のIDを作成することができます:2と3については

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

を私はthis Railscastを見てお勧めします。

+0

ご協力ありがとうございますが、名前に「product_ids []」を使用する理由はありますか? – datisdesign

+2

フィールド名の末尾にある大括弧は、すべての値を配列に配置します。したがって、params [:product_ids]を実行すると、チェックされたすべてのフィールドの配列になります。大括弧がない場合は、チェックされた値が1つだけ返されます。 – ryanb

+0

ありがとうございました:) – datisdesign

関連する問題