わかりましたので、レールを介してデータベースに挿入する必要があるcsvをインポートしようとしていますが、とにかくそれが最も速いので、インポートを行うためのダミーレールアプリケーションを作成することにしました。以下は、読んでいたブログから入手したコードの一部です。
def upload
table = ImportTable.new :original_path => params[:upload][:csv].original_path
row_index = 0
FasterCSV.parse(params[:upload][:csv]) do |cells|
column_index = 0
cells.each do |cell|
table.import_cells.build :column_index => column_index, :row_index => row_index, :contents => cell
column_index += 1
end
row_index += 1
end
table.save
redirect_to import_table_path(table)
end
すべてうまく機能しますが、csv の形式は、このプロセスを簡単にする方法ではありません。ここにフォーマットと私が起こる必要があるものがあります。
NELCO 2GB RAM, 250GB HDD, DVD-RW, WIN7 PRO / XP LOADED $575.00 1 $575.00 2 $1,150.00 3 $1,725.00 4 $2,300.00 5 $2,875.00
TOUCHSCREEN, 15" LCD, SPKRS $489.00 1 $489.00 2 $978.00 3 $1,467.00 4 $1,956.00 5 $2,445.00
THERMAL RECEIPT PRINTER FRONT LOADING $324.00 1 $324.00 2 $648.00 3 $972.00 4 $1,296.00 5 $1,620.00
IMPACT PRINTER, SERIAL $285.00 1 $285.00 1 $285.00 1 $285.00 1 $285.00 1 $285.00
CASH DRAWER, 16x16 $127.00 1 $127.00 1 $127.00 1 $127.00 2 $254.00 2 $254.00
RESTAURANTS PRO LICENSE $699.00 1 $699.00 2 $1,398.00 2 $1,398.00 2 $1,398.00 2 $1,398.00
RESTAURANTS PRO LICENSE FOR ADDITIONAL STATIONS BEYOND 2 $535.00 $0.00 $0.00 1 $535.00 2 $1,070.00 3 $1,605.00
CREDIT CARD PROCESSING SOFTWARE + CARD READER $79.00 1 $79.00 2 $158.00 3 $237.00 4 $316.00 5 $395.00
FIREWALL & STATEFUL PACKET INSPECTION $89.00 $0.00 1 $89.00 1 $89.00 1 $89.00 1 $89.00
STANDARD SUPPORT PLAN FIRST STATION $275.00 1 $275.00 1 $275.00 1 $275.00 1 $275.00 1 $275.00
SUPPORT PLAN ADDT'L STATIONS $100.00 $0.00 1 $100.00 2 $200.00 3 $300.00 4 $400.00
PREPAID TRAINING & SUPPORT BUNDLE (1 HR.) $89.00 1 $89.00 1 $89.00 1 $89.00 1 $89.00 1 $89.00
読みにくい場合は申し訳ありませんが、私は書式設定に最善を尽くしました。各行の最初の要素は製品の名前であるため、Product.name に格納する必要があり、2 番目の要素は価格であるため、Product.price に格納されます。次は私が問題を抱えているところです
ループの中
cells.each do |cell|
行の 3 番目の要素で何かを行い、5 番目の要素で別のことを行うかどうかを確認する必要がありますが、cell[2] を試してみたところ、このようなファンキーなものが得られました
Rails.logger.info "====3rd postion==========#{cell[3]}"
=> ====3rd postion===========79