首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >axlsx / axlsx_rails相关性/冲突问题

axlsx / axlsx_rails相关性/冲突问题
EN

Stack Overflow用户
提问于 2016-06-25 13:12:51
回答 2查看 1.4K关注 0票数 3

我试图用https://github.com/randym/axlsxhttps://github.com/straydogstudio/axlsx_rails将简单的Excel文件下载添加到我的Rails应用程序中,但我似乎无法理清依赖关系。

这是我从gem文件开始的地方:

代码语言:javascript
复制
gem 'zip-zip'
gem 'axlsx'
gem 'axlsx_rails'
gem 'activeadmin-axlsx'

和一个简单的索引模板:

代码语言:javascript
复制
wb = xlsx_package.workbook
wb.add_worksheet(name: "Areas") do |sheet|
  @areas.each do |area|
    sheet.add_row [area.name, area.user_id]
  end
end

抛出这个:

代码语言:javascript
复制
NoMethodError - undefined method `reopen' for "streamed":String:
  rubyzip (1.2.0) lib/zip/output_stream.rb:32:in `initialize'
  axlsx (1.3.6) lib/axlsx/package.rb:113:in `to_stream'
  app/views/areas/index.xlsx.axlsx:8:in `_app_views_areas_index_xlsx_axlsx___113759396792702403_70279795626520'

这个问题似乎试图解决这个问题:

https://github.com/straydogstudio/axlsx_rails/issues/18

它关注的是axlsx gem的v2.x,我似乎也不能加载它,尝试一下:

代码语言:javascript
复制
gem 'zip-zip'
gem 'axlsx', '2.1.0.pre'
gem 'axlsx_rails', '>=0.4' 
gem 'activeadmin-axlsx'

但这破坏了active_admin_import:

代码语言:javascript
复制
Bundler could not find compatible versions for gem "rubyzip":
  In Gemfile:
    active_admin_import (>= 0) ruby depends on
      rubyzip (~> 1.2) ruby

    axlsx (= 2.1.0.pre) ruby depends on
      rubyzip (~> 1.1.7) ruby

我不明白,如果我读了这篇文章,他们应该都可以使用rubyzip的1.2版本。

它还破坏了activeadmin-axlsx

代码语言:javascript
复制
      # patching the index method to allow the xlsx format.
      def index_with_xlsx(options={}, &block)
        index_without_xlsx(options) do |format|  ### wrong number of arguments (1 for 0)
           format.xlsx do
            xlsx = active_admin_config.xlsx_builder.serialize(collection)
            send_data xlsx.to_stream.read, :filename => "#{xlsx_filename}", :type => Mime::Type.lookup_by_extension(:xlsx)
          end
        end

如果我禁用active_admin_importaxlsx会工作得很好,但这很糟糕,因为我失去了灵活的管理员导入。

降级似乎有效,但这似乎不是一个长期的解决方案:

代码语言:javascript
复制
gem 'active_admin_import', '2.1.2'

这里有什么想法或建议吗?

EN

回答 2

Stack Overflow用户

发布于 2018-11-13 19:37:29

ruby Rails 5.2.1 / 2.5.0的工作组合

gem 'rubyzip', '>= 1.2.1' gem 'axlsx', git: 'https://github.com/randym/axlsx.git', ref: 'c8ac844' gem 'axlsx_rails' gem 'zip-zip'

票数 1
EN

Stack Overflow用户

发布于 2017-02-23 21:49:07

我看到了同样的错误,NoMethodError - undefined method 'reopen' for "streamed":String:虽然我没有active_admin_import依赖,但在https://github.com/straydogstudio/axlsx_rails/issues/18#issuecomment-162934108上描述的gem版本的选择为我解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38025219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档