Я делаю базовое приложение Sinatra, чтобы поиграть с драгоценным камнем Passbook.Неопределенный метод Zip :: ZipOutputStream.write_buffer на Heroku
Мое приложение работает отлично на localhost
, но когда я пытаюсь запустить его на Heroku, я получаю сообщение об ошибке:
/app/vendor/bundle/ruby/2.0.0/gems/passbook-0.2.1/lib/passbook/pkpass.rb:122:in `outputZip'
/app/vendor/bundle/ruby/2.0.0/gems/passbook-0.2.1/lib/passbook/pkpass.rb:60:in `stream'
/app/vendor/bundle/ruby/2.0.0/gems/sinatra-1.4.4/lib/sinatra/base.rb:1593:in `call'
NoMethodError - undefined method `write_buffer' for Zip::ZipOutputStream:Class:
Это происходит, когда я называю линию passbook.stream.string
в моем файле приложения.
Я не думаю, что проблема с программой Passbook - это метод класса write_buffer
существует в версии Zip::ZipOutputStream
на моей локальной машине, но не существует на Heroku. Почему это? Как я могу обойти это?
Я пробовал, включая как zip
, так и rubyzip
в моем Gemfile, отдельно и в то же время, и ни один из них не решает проблему.
Оказывается, я использовал ruby 1.9.3 локально и 2.0.0 на Heroku. Исправление этого не решило мою проблему. Но когда я запускаю свое приложение с 'bundle exec', я получаю ту же ошибку локально, что и я на Heroku! Шаг назад, но он дает мне больше информации об ошибке, я полагаю. – GMA
Отлично - рад помочь! Теперь это, вероятно, до Gemfile и правильной версии Gem и т. Д. –