可能是这样的:
@users = User.criteria.for_ids(params[:user_ids])
@users.update_all(:suspend => true)
代替:
for u in @users
u.suspend = true
u.update_attributes
end
可能是这样的:
@users = User.criteria.for_ids(params[:user_ids])
@users.update_all(:suspend => true)
代替:
for u in @users
u.suspend = true
u.update_attributes
end
看看这个:
# Updating one record:
Person.update(15, :user_name => 'Samuel', :group => 'expert')
# Updating multiple records:
people = { 1 => { "first_name" => "David" }, 2 => { "first_name" => "Jeremy" } }
Person.update(people.keys, people.values)
在这里看到:http: //apidock.com/rails/ActiveRecord/Base/update/class
如果验证通过,则更新一个对象(或多个对象)并将其保存到数据库中。无论对象是否成功保存到数据库,都会返回结果对象。
在你的情况下:
User.update(params[:user_ids], :suspend => true)
希望这可以帮助!
只要for_ids
方法返回一个条件(而不是数组),您就可以使用update_all
.
@users = User.criteria.for_ids(params[:user_ids])
@users.update_all(:suspend => true)
呼叫被update_all
翻译成set
呼叫。有关更多详细信息,请参阅文档。