NameError: неинициализированная константа Smtpapi - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь отправить свой код в Heroku, и сборка завершается с

 NameError: uninitialized constant Smtpapi
    /tmp/build_0ce2a697c4ef6c16626b01b82d9463f3/app/helpers/my_mailer_header.rb:1:in `<top (required)>'
    /tmp/build_0ce2a697c4ef6c16626b01b82d9463f3/lib/api_v1/users.rb:3:in `<top (required)>'
    /tmp/build_0ce2a697c4ef6c16626b01b82d9463f3/lib/api_v1/mymedical.rb:3:in `<class:Mymedical>'
    /tmp/build_0ce2a697c4ef6c16626b01b82d9463f3/lib/api_v1/mymedical.rb:1:in `<top (required)>'
    /tmp/build_0ce2a697c4ef6c16626b01b82d9463f3/config/routes.rb:1:in `<top (required)>'
    /tmp/build_0ce2a697c4ef6c16626b01b82d9463f3/vendor/bundle/ruby/2.4.0/gems/railties-4.2.11/lib/rails/application/routes_reloader.rb:40:in `block in load_paths'

Я обновляю свой Gemfile с Ruby 2.3 до 2.4, и теперь я получаю эту ошибку?Не удается найти решение.

Кажется, это код, вызывающий проблему.

class MyMailerHeader < Smtpapi::Header

Smtpapi не существует в Ruby 2.4.2?

Smtpapiявляется частью самоцвета Send-Grid и некоторых других самоцветов.

    sendgrid-ruby (1.1.6)
      faraday (~> 0.9)
      mimemagic
      smtpapi (~> 0.1)
    smtpapi (0.1.0)

1 Ответ

0 голосов
/ 10 апреля 2019

sendgrid-ruby зависит от smtpapi только в версии 1.x, в более поздних версиях, включая текущую 5.3.0, нет.

Поскольку эта ошибка возникла вместе с обновлением ruby ​​- это может быть связано с обновлением гемов,Это должно быть предотвращено Gemfile.lock, но если Gemfile содержит какие-либо упоминания о окнах (mswin, mingw и т. Д.), Heroku проигнорирует его.

Сам камень не обновлялся в течение 4 лет.сейчас, потому что sendgrid переписал sendgrid-ruby.Лучший вариант - следовать им и обновлять свой код тоже.Но для запуска приложения до того, как вы это сделаете - вы можете явно заблокировать версию sendgrid-ruby: gem 'sendgrid-ruby', '~>1.1.6'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...