J'ai un modèle (appelé Test):importateur de FasterCSV au modèle DataMapper - Pas lignes insérées
property :id, Serial
property :title, String, :length => 255, :required => true
property :description, String, :length => 255, :required => true
property :brand, String, :length => 255, :required => true
property :link, String, :length => 255, :required => true
property :image_link, String, :length => 255, :required => true
property :price, String, :length => 255, :required => true
property :condition, String, :length => 255, :required => true
property :product_type, String, :length => 255, :required => true
Je l'importation de données à partir d'un onglet fichier délimité, en utilisant FasterCSV,
FasterCSV.foreach (» test.txt "{: headers => true,: quote_char => '"',: col_sep => '/ t'}) faire | row_data |
row_data = Test.first_or_new(
'title' => :title,
'description' => :supplier,
'brand' => :brand,
'link' => :link,
'image_link' => :image_link,
'price' => :price,
'condition' => :condition,
'product_type' => :product_type
)
row_data.save
fin
Aucune erreur n'apparaît lorsque j'exécute l'importateur. Rien n'apparaît inséré dans la table SQLite.
Est-ce que je manque quelque chose d'évident? (La table existe dans la base de données cible et les noms des champs sont les mêmes que les en-têtes de mon fichier.)
Merci, j'ai utilisé votre version, avec le séparateur onglet correct et en utilisant la bonne façon de trouver les articles de la row_data. Bien que n'obtenant toujours rien d'important. Quoi qu'il en soit, obtenir FasterCSV pour produire des journaux, ou aurait-il erreur si les données étaient erronées? – Neil
Oui, bien sûr, vous pouvez ajouter un "puts row_data.inspect" juste après la ligne foreach afin de retrouver ce que contient la table row_data. (par la façon dont le "\ t" signifie que vos champs sont séparés par des tabulations, est-ce correct?) – hellvinz
Correct il est délimité par des tabulations, un exemple de sortie de ligne de FasterCSV confirme qu'il attribue les bonnes valeurs à chaque colonne lors de la lecture. Juste la méthode de sauvegarde semble ne pas entrer dans DataMapper. – Neil