2013-05-01 1 views
0

Я разбираю файл .xls с библиотекой roo и заполняю мои модели. Я использую файл seeds.rb для этого и команду using rake db:seed. Я получаю сообщение об ошибке, в котором говорится, что файл, который я пытаюсь открыть, не существует, но он находится в той же папке seed.rb. Вот это то, что я получил до сих пор.Невозможно загрузить файл с помощью rake db seed для заполнения базы данных библиотекой roo

require 'rubygems' 
require 'roo' 
require 'active_record' 

co = Roo::Excel.new("excel.xls") 

co.default_sheet = co.sheets.first 

2.upto(42700) do |line| 
    #Category 
    category_xls = co.cell(line, 'A') 
    category_id = category_xls[0,2].to_i 
    category_name = category_xls[4, category_xls.length] 

    #Subcategory 
    subcategory_xls = co.cell(line, 'B') 

    #Item 
    item_xls = co.cell(line, 'C') 
    partno_xls = co.cell(line, 'D') 
    description_xls = co.cell(line, 'E') 
    explanation_xls = co.cell(line, 'H') 
    information_xls = co.cell(line, 'J') 

    #Uom 
    uom_xls = co.cell(line, 'F') 

    #MTML 
    mtml_xls = co.cell(line, 'G') 

    #Picture 
    #picture = co.cell(line, 'I') 

    # cria uma categoria e a insere no banco, caso ela nao exista 
    category = Category.find_or_create_by_category_name(category_number: category_id, category_name: category_name) 

    # cria uma subcategoria e a insere no banco, caso ela nao exista 
    subcategory = Subcategory.find_or_create_by_subcategory_name(subcategory_name: subcategory_xls, category: category) 

    # cria um item 
    item = Item.create(item_name: item_xls, explanation: explanation_xls, information: information_xls, description: description_xls, subcategory: subcategory) 

    # cria um uom 
    uom = Uom.find_or_create_by_uom_name(uom_name: uom_xls, item: item) 

    # cria um mtml 
    mtml = Mtml.find_or_create_by_mtml_name(mtml_name: mtml_xls, item: item) 

end 

ответ

0

Я думаю, вам все равно нужно указать, где находится файл по отношению к корню вашего приложения.

co = Roo :: Excel.new (Rails.root.join ('db', 'excel.xls'))