Tengo la tabla "Productos" y quiero llenar una columna con datos de otra columna, que: Product.first.product_id == Product.first.barcode. Actualmente, mantener el código de barras en product_id y barcode es nulo.

Editar: Quiero completar todos los códigos de barras de Productos con datos existentes de Product.product_id.

He intentado buscarlo en Google, pero todavía no sé cómo debo migrar los datos. ¡Gracias por cualquier ayuda!

Editar: uso PostgreSQL.

2
Giovani 16 ago. 2016 a las 13:48

2 respuestas

La mejor respuesta

Puede utilizar ActiveRecord :: Relation # update_all, para actualizar los registros existentes en la base de datos. Esto se puede ejecutar desde la consola de rails o mediante una tarea de rake personalizada.

Product.update_all("barcode = product_id")

Para los registros futuros, use una devolución de llamada. En product.rb

before_save :update_barcode

def update_barcode
  self.barcode = self.product_id
end
3
Santhosh 17 ago. 2016 a las 10:45

Tal vez esto ayude:

update Productsset set product_id=barcode

Está basado en SQL.

1
Laurel 16 ago. 2016 a las 22:52