CarrierWaveを使用してファイルのアップロードを処理しているRailsアプリにCSVファイルをインポートしようとしています。私はCSV
gemを使用しており、シードデータを介してRailsデータベースにデータを入力しています。
私が抱えている問題は、インポートがデータベースの画像フィールドに入力されないことです。画像列は、ファイル名を保持する文字列です。'this-is-my-photo.jpg'。
次の列を持つデータベーステーブルがあります。
# ProductImage model, product_image table
id | image | tile | product_id | created_at | updated_at
--------------------------------------------------------------------------
1 | image-1.jpg | Big shoe | 11 | 2012-08-01 | 2012-08-01
2 | 1-photo.png | Small hat | 12 | 2012-08-01 | 2012-08-01
3 | jeansb1.gif | Ankle socks | 13 | 2012-08-01 | 2012-08-01
# Import product_image table backup
CSV.foreach(Rails.root.join("db/seeds/product_image.csv"), headers: true) do |row|
ProductImage.create! do |product_image|
product_image.id = row[0]
product_image.title = row[1]
product_image.image = row[2]
product_image.product_id = row[3]
end
end
の結果db:seed
# ProductImage model, product_image table after population of seed data
id | image | tile | product_id | created_at | updated_at
--------------------------------------------------------------------------
1 | | Big shoe | 11 | 2012-11-01 | 2012-11-01
2 | | Small hat | 12 | 2012-11-01 | 2012-11-01
3 | | Ankle socks | 13 | 2012-11-01 | 2012-11-01
image
列以外はすべて入力されました。
このインポート/人口の問題を解決するためのヒントを誰かに教えてもらえないかと思っていました。誰かが以前にこの問題を経験したことがありますか?それはファイル名タイプ(例:.jpg)が原因ですか?
avatar
また、 CarrierWaveファイル名を保持する文字列である列を持つユーザーモデルを復元するときにも同じ問題が発生します。
前もって感謝します。