2016-06-25 27 views
3

https://github.com/randym/axlsxhttps://github.com/straydogstudio/axlsx_railsと簡単なExcelファイルダウンロードを私のRailsアプリケーションに追加しようとしていますが、依存関係を並べ替えることができません。私は私の宝石ファイルで出始めのはここaxlsx/axlsx_rails依存関係/矛盾の問題

は次のとおりです。

gem 'zip-zip' 
gem 'axlsx' 
gem 'axlsx_rails' 
gem 'activeadmin-axlsx' 

と単純なインデックステンプレート:

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 

はこれをスロー:

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宝石のバージョン2.xに焦点を当てて:休憩がactive_admin_importこと

gem 'zip-zip' 
gem 'axlsx', '2.1.0.pre' 
gem 'axlsx_rails', '>=0.4' 
gem 'activeadmin-axlsx' 

しかし:

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のv1.2でOKです。

またactiveadmin-axlsxを破る:

 # 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 

私は素晴らしい作品が、私は滑らかな管理者のインポートを失うので、それが吸うaxlsxactive_admin_importを無効にした場合。

ダウングレードは動作するようですが、それは長期的な解決策のように見えるしていません:

gem 'active_admin_import', '2.1.2' 

どれでもここでのアイデアや提案?私はactive_admin_import依存関係を持っていませんが、私は同じエラーを見ていた

+1

axlsxリポジトリをフォークし、その依存関係を変更し、独自のgithubを指してみてください。 Rubyzip 1.1と1.2の違いは本当に気にしないと私は確信しています。しかし、あなたは知る必要があります。 Axlsx_railsは依存関係の問題を引き起こしますが、そうではありません。残念ながら、axlsxの開発は、それがまだ有用な宝石ではあるが、昨年ほど遅れてしまった。 – noel

答えて