2013-03-08 78 views
0

如何讓一組用戶未激活如何批量更新一組用戶

params[:user_ids] = [1,5, 6, 9] 
User.update_all({:status => 'Inactive'}, {:id => params[:user_ids]}) 

這會不會將狀態設置爲不活躍上述4個用戶或所有用戶。我不知道我是否正確使用這個,我的意圖是更新上述4個用戶的狀態。

回答

2

試試這個:

User.where(:id => params[:user_ids]).update_all(:status => 'Inactive') if params[:user_ids].present? 

User.where('id IN (?)', params[:user_ids]).update_all(:status => 'Inactive') if params[:user_ids].present? 
+0

這會不會是一個問題,如果user_ids是空的?我應該如何防止這種情況下的更新。 – Sam 2013-03-09 05:38:42

+1

我認爲它應該沒有任何問題的工作,如果它是一個空的'數組',並給出錯誤,如果它是'無'。你可以在控制檯上試用它。如果它給出錯誤,那麼使用'if':'User.where('id IN(?)',params [:user_ids])。update_all(:status =>'Inactive')if params [:user_ids] .present? ' – codeit 2013-03-09 08:06:04