2016-06-25 6 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에 초점을 맞추고 :

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

을하지만 그 active_admin_import 나누기 :

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에서 괜찮을 것이다.

또한 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 

내가 active_admin_importaxlsx을 사용하지 않도록 설정하면 잘 작동하지만 매끄러운 관리자 가져 오기를 풀어 때문이 안됐다.

다운 그레이드가 작동하는 것 같다하지만 장기적인 해결책은 아닌 것 같아 :

gem 'active_admin_import', '2.1.2' 

모든 여기에 아이디어 나 제안? 나는 active_admin_import 종속성이 없지만

+1

axlsx repo를 분기하고 의존성을 변경하고 자신의 github을 가리켜 볼 수도 있습니다. Rubyzip 1.1 대 1.2에 대해서는별로 신경 쓰지 않을 것이라고 확신합니다. 그러나 당신은 알아 내야 할 것입니다. Axlsx_rails는 종속성 문제를 일으킬 수 있지만 그렇지 않을 수 있습니다. 불행히도 axlsx 개발은 지난 1 년 정도 동안 진행되었지만 여전히 유용한 보석입니다. – noel

답변