Railsのキャストエピソード、CSVのインポート、Excelをフォローしていますが、設定が少し異なります。
使用量(金額)と価格(金額)の2つのモデルがあります。私はそれを設定しているので、使用量は1つの価格であり、価格は使用法に属します。私のcsvには、次のように2つの列があります。
usage,price
1000,0.1
1500,0.11
データベースにusage.amountとusage.price.amountを取得できるように、データをインポートしようとしています。
私はここを見て、そこですべてを試しました。注意すべき点の1つは、id列がないことです(id列を試してみましたが、その質問のコードはまだ機能しませんでした)。
これが私のモデルのコードです:
class Usage < ActiveRecord::Base
has_one :price, dependent: :destroy
accepts_nested_attributes_for :price
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
Usage.create! row.to_hash
end
end
end
注:上記はprice.amountのインポートに言及していないことは知っていますが、試したものはすべて機能しません。
これに関するどんな助けでも大いに感謝されるでしょう、ありがとう!
アップデート
これが私がそれを機能させた方法です:(次のコードを手伝ってくれたalalaniに感謝します。)
CSV.foreach(file.path, headers: true) do |row|
u = Usage.create(amount: row[0])
u.create_price(amount: row[1])
end