2009-08-18 21 views
5

द्वारा एकाधिक आइटम हटाएं मुझे अपने पास चेकबॉक्स के साथ कई आइटम चुनने और उन्हें एक स्थान पर हटाने की क्षमता चाहिए।चेकबॉक्स

इस कोड है:

<% @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[]" है?

  2. मैं एक क्लिक में चेक किए गए आइटम को कैसे हटा सकता हूं?

  3. इसके अलावा, इस भाग का क्या अर्थ है: product[]?

उत्तर

7

1: आप उन विकल्पों हैश के भाग के रूप में उत्तीर्ण होकर अपनी खुद की आईडी बना सकते हैं:

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

2 के लिए और 3 मैं this Railscast देखने की सलाह देते चाहते हैं।

+0

आपकी मदद के लिए धन्यवाद, लेकिन हम नाम के लिए "product_ids []" का उपयोग क्यों करते हैं, क्या इसका कोई कारण है? – datisdesign

+2

फ़ील्ड नाम के अंत में स्क्वायर ब्रैकेट्स सभी मानों को सरणी में रखा जाना चाहिए। तो जब आप पैराम करते हैं [: product_ids] यह सभी चेक किए गए फ़ील्ड की एक सरणी होगी। यदि आपके पास स्क्वायर ब्रैकेट नहीं हैं तो यह केवल एक चेक किए गए मान को वापस कर देगा। – ryanb

+0

आपकी मदद के लिए धन्यवाद :) – datisdesign

संबंधित मुद्दे