2016-04-07 20 views
0

CSVファイルからレコードをアップロードしています。しかし、このファイルには関連データを持つレコードもあります。 レーキタスクが複数回実行されるため、重複したデータが保存されないようにする必要があります。first_or_createメソッドはRailsの関連付けに対して機能しますか?

だから、first_or_createも関連付けに対応していますか?次のように

コードは次のとおりです。

row = # FROM CSV Looping 

    service_place = ServicePlace.first_or_create(
     name: row['NAME'], 
     service_type: service_type, 
     address_attributes: 
     { 
     line_1: row['LOCATION'], 
     city: row['CITY'], 
     province: row['PROVINCE'], 
     postal_code: row['POSTAL_CODE'], 
     latitude: coords[0], 
     longitude: coords[1] 
     } 
    ) 
+0

なぜ、そのサンプルデータをデータベースに挿入してから、「first_or_create」を呼び出して瞬時に答えを出してみませんか? – twonegatives

+0

それは明らかに私はバディをしました。しかし、いくつかのクールな提案/あなたのような素晴らしい人々によって代替を待っていた:) – Sachin

答えて

0

私は値が一意であることを保証し、あなたの協会にActiveModel検証を追加しないのはなぜ重複データが

保存されていないことを確認する必要があります?この方法で、永続化したデータが一意になるようにします。

+0

それはあまり実際の要件ではありません。管理者は、必要に応じて重複したデータを作成することが一般的です。しかし、** rakeタスクが例えば20回実行されている場合には作成したくありません。** – Sachin

関連する問題