2012-08-29 62 views
0

我想讓用戶選擇多個記錄在我的rails 3應用程序中銷燬。使用選擇標記銷燬多個記錄

我對我的產品指數check_box_tag如下:

<td><%= check_box_tag "product_ids_destroy[]", product.id %></td> 

,並增加了在我的索引提交標籤:

<%= submit_tag "Delete Selected" %> 

而在我的產品控制器我創建了一個方法:

def destroy_select 
    product_ids = params["product_ids_destroy"] 
    objs = Product.find(:all, :conditions => ["products.id IN (?)", product_ids]) 
    objs.each { |o| o.destroy} 
    end 

並定義了我的routes.rb:

resources :products do 
    collection do 
     delete 'destroy_select' 
    end 

該方法在控制檯中工作。如何將我從索引收集的product_ids「連接」到控制器方法以銷燬每條記錄?我可以在提交標記中添加方法嗎?另外,如果我想在銷燬之前添加一個確認,我是否將其添加到我的提交標記中?

回答

0

檢查使用

bundle exec rake routes 

那麼你的表格上可以設置窗體名爲途徑和方法的動作你的路由刪除

,你可以做你的控制器的動作的微小重構

def destroy_select 
    Product.destroy_all(params["product_ids_destroy"]) unless params["product_ids_destroy"].blank? 
end 
0

要將表單提交掛鉤到控制器的正確動作中,您必須使表單使用DELETE方法。該選項(:method => :delete)必須在您的form_forform_tag函數調用中設置。

雖然您可以將確認信息掛鉤到submit_tag本身。查看the docs中的:confirm => 'My message?'選項。

希望有幫助!