1

我正在使用 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 文件中无效。

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

4

0 回答 0