2016-08-16 2 views
2

テーブル「Products」があり、ある列に別の列のデータ、つまりProduct.first.product_id == Product.first.barcodeを設定したいとします。 現在、バーコードはproduct_idbarcodeのままです。db内のフィールドに別のフィールドを設定する

編集:すべての製品バーコードにProduct.product_idの既存のデータを入力したいとします。

私はGoogleにそのような試みをしてきましたが、どのようにデータを移行する必要があるのか​​まだ分かりません。助けてくれてありがとう!

編集:私はPostgreSQLを使用しています。

+0

どのデータベースを使用していますか? –

+0

@NarasimhaReddy postgresql – Giovani

答えて

3

ActiveRecord::Relation#update_allを使用すると、データベース内の既存のレコードを更新できます。これは、レールコンソールまたはCustom rake taskを使用して実行できます。

Product.update_all("barcode = product_id") 

今後の記録では、コールバックを使用してください。製品内。

before_save :update_barcode 

def update_barcode 
    self.barcode = self.product_id 
end 
+0

あなたは 'self'を必要としません。 – Giovani

1

多分これは役立ちます:

update Productsset set product_id=barcode 

これは、SQLに基づいています。

関連する問題