Ruby on rails Can';t使用rake db seed加载文件,用roo库填充数据库

Ruby on rails Can';t使用rake db seed加载文件,用roo库填充数据库,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我正在用roo库解析一个.xls文件并填充我的模型。我正在使用seeds.rb文件,并使用rake db:seed命令。我得到一个错误,说我试图打开的文件不存在,但它在seed.rb的同一个文件夹中。这就是我目前得到的 require 'rubygems' require 'roo' require 'active_record' co = Roo::Excel.new("excel.xls") co.default_sheet = co.sheets.first 2.upto(42700

我正在用roo库解析一个.xls文件并填充我的模型。我正在使用seeds.rb文件,并使用rake db:seed命令。我得到一个错误,说我试图打开的文件不存在,但它在seed.rb的同一个文件夹中。这就是我目前得到的

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

我认为您仍然需要告诉它文件相对于应用程序根的位置

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