Je dois pouvoir comparer deux colonnes de chaque ligne d'un fichier CSV avec ma propre base de données.Importation d'enregistrements à partir d'un fichier CSV et écriture simultanée sur le même fichier CSV?
Par exemple, une ligne ressemble à ceci:
Headers => "Zipcode", "HouseNumber"
Row 1 => "5435 ZX", "43"
Tout d'abord je dois trouver une entreprise dans ma propre base de données, basée sur code postal et numéro de maison, et, si cela retourne vrai, alors je dois importer le reste des colonnes dans cette rangée. Je sais comment résoudre ça. Mais, je dois aussi pouvoir garder une trace des lignes importées, parce que j'ai besoin de diviser le total des enregistrements en petits morceaux, donc j'ai besoin d'ajouter un champ supplémentaire à chaque ligne une fois importée.
Pour résumer:
Comment puis-je ajouter un champ supplémentaire (« importé ») à chaque ligne une fois importée dans la boucle suivante:
CSV.foreach('reviews.csv', :headers => true) do |row|
Review.create(row.to_hash)
end
En relisant la question, la ligne «Je dois diviser le nombre total d'enregistrements en petits morceaux» me dépasse - pourquoi avez-vous besoin de faire cela? Pouvez-vous donner plus de contexte? –