2010-08-29 81 views
1

好吧,所以我想导入一个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中,第二个元素是价格,以便在Product.price中使用。下一个就是我有问题

在循环

 cells.each do |cell| 

我需要检查,看看我在该行的第三个元素,并做一些事情,第五元素,做另一件事

但我想细胞[2],得到了时髦的东西像这样

Rails.logger.info "====3rd postion==========#{cell[3]}" 
    => ====3rd postion===========79 

回答