NameError:未初始化的常量Roo :: Excelx :: Zip

时间:2015-11-10 11:38:30

标签: ruby-on-rails ruby ruby-on-rails-4 roo roo-gem

我正在使用ruby 2.2.1和rails 4.2.1。

我正在使用以下宝石。

roo (2.0.1)
roo-xls (1.0.0)
rubyzip (1.1.7)

我写了一个rake任务如下。

check_roo.rake

require 'rubygems'
require 'roo-xls'
require 'roo'

desc "desc"
task :check_roo => :environment do |task, args|
  xlsx = Roo::Excelx.new("#{Rails.root}/v15_Data.xlsx")
end

bundle exec rake check_roo的输出:

NameError: uninitialized constant Roo::Excelx::Zip
/home/abhimanyu/.rvm/gems/ruby-2.2.1@newerp/gems/roo-2.0.1/lib/roo/excelx.rb:412:in `process_zipfile'
/home/abhimanyu/.rvm/gems/ruby-2.2.1@newerp/gems/roo-2.0.1/lib/roo/excelx.rb:100:in `initialize'
/home/abhimanyu/Documents/projects/abc/lib/tasks/check_roo.rake:9:in `new'
/home/abhimanyu/Documents/projects/abc/lib/tasks/check_roo.rake:9:in `block in <top (required)>'

但是当我在rails控制台中运行以下命令时,它可以正常工作。

xlsx = Roo::Excelx.new("#{Rails.root}/v15_Data.xlsx")

输出:

<#Roo::Excelx:320135634 @tmpdirs @tmpdir @filename @comments_files @rels_files @sheet_files @workbook @sheet_names @sheets @styles @shared_strings @sheets_by_name @options @cell @cell_type @cells_read @first_row @last_row @first_column @last_column @header_line>

无法理解为什么同一命令在控制台中工作但在rake文件中不起作用。

任何帮助将不胜感激。提前谢谢。

0 个答案:

没有答案