2011-02-26 24 views
5

Quiero configurar la columna 'bloquear' en una fila solo si aún no está configurada. Las condiciones de carrera son probables y el rendimiento es importante, así que esto debe hacerse en una sola consulta. Creo que la solución debe tener este aspecto:¿El método update_all en ActiveRecord devuelve el número de filas?

class MyModel 
    def lock(worker) 
    cnt = MyModel.where(id: self.id, lock: nil).update_all(:lock=>worker.name) 
    cnt == 1 
    end 
end 

que hace el método update_all vuelven en realidad el número de filas efectuado como lo hace en DataMapper?

Respuesta

6

Sí, lo hace en ActiveRecord como en DataMapper

Cuestiones relacionadas