2017-04-18 66 views
0

我有一個導軌模型,我想從控制器的一個調用中銷燬多個記錄。我的控制器方法是類似於在導軌中刪除多個模型

def destroy_multiple 
    Model.destroy_all(params[:id_list]) 
end 

我的問題是什麼是最好的方式來提交id?作爲POST請求? GET請求? DELETE請求上的URL參數?做這個的最好方式是什麼?

回答

2

您可以使用POST或DELETE請求來做到這一點,但我更願意將其作爲DELETE來執行。你可以做這樣的事情:

Model.where(id: params[:id_list]).destroy_all 
+0

我應該如何通過帶有刪除請求的參數?作爲url參數? – sakurashinken

+0

是將它作爲url參數發送,如「delete_path(ids_list:[1,2,3])」 –

2

傳遞PARAMS在url,像/模型/ destroy_multiple IDS = [1,2,3]

然後在控制器:

def destroy_multiple 
    Model.destroy_all(params[:id_list]) 
end 

但要記住:

  • destroy/destroy_all:該相關聯的對象通過調用其銷燬方法
  • delete/delete_all摧毀旁邊這個對象:所有關聯的對象就被破壞了,而不調用它們:破壞方法

如果模型沒有相關的記錄,你應該使用delete_all因爲速度更快。