update_attributes用于许多具有mongoid的对象

hyp*_*jas 3 ruby ruby-on-rails mongoid ruby-on-rails-3 ruby-on-rails-3.1

可能是这样的:

@users = User.criteria.for_ids(params[:user_ids])
@users.update_all(:suspend => true)
Run Code Online (Sandbox Code Playgroud)

代替:

for u in @users
 u.suspend = true
 u.update_attributes
end
Run Code Online (Sandbox Code Playgroud)

MrY*_*iji 5

看看这个:

# 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)
Run Code Online (Sandbox Code Playgroud)

见到这里:http://apidock.com/rails/ActiveRecord/Base/update/class

如果验证通过,则更新对象(或多个对象)并将其保存到数据库.无论对象是否已成功保存到数据库,都会返回结果对象.

在你的情况下:

User.update(params[:user_ids], :suspend => true)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!