我正在使用 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 文件中无效。
任何帮助,将不胜感激。提前致谢。