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