Rails 4.1 и gem exception_notification-rake, вызывающие неинициализированную константу ExceptionNotification

Я обновился до Rails 4.1 и пытаюсь настроить гем exception_notification-rake, чтобы он уведомлял меня по электронной почте о неудачных задачах rake.

В моем Gemfile у меня есть gem 'exception_notification-rake',

В development.rb У меня есть следующее:

MyApp::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false

  # Show full error reports and disable caching.
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send.
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  # Specify what domain to use for mailer URLs
  config.action_mailer.default_url_options = {host: "localhost:3000"}
  config.action_mailer.smtp_settings = {
      :address              => 'smtp.gmail.com',
      :port                 => 587,
      :domain               => 'gmail.com',
      :user_name            => Rails.application.secrets.email['user'],
      :password             => Rails.application.secrets.email['pass'],
      :authentication       => 'login',
      :enable_starttls_auto => true
  }

  # Print deprecation notices to the Rails logger.
  config.active_support.deprecation = :log

  # Raise an error on page load if there are pending migrations
  config.active_record.migration_error = :page_load

  # Debug mode disables concatenation and preprocessing of assets.
  # This option may cause significant delays in view rendering with a large
  # number of complex assets.
  config.assets.debug = true

  config.after_initialize do
    Bullet.enable = true
    Bullet.alert = true
    Bullet.bullet_logger = true
    Bullet.console = true
    # Bullet.growl = true
    Bullet.rails_logger = true
    Bullet.add_footer = true
  end

  config.middleware.use ExceptionNotification::Rack,
    :ignore_if => lambda { |env, exception| !env[:rake?] },
    :email => {
      :sender_address => %{"notifier" myemail@gmail.com},
      :exception_recipients => %w(myemail@gmail.com)
    }
    ExceptionNotifier::Rake.configure
end

Как вы можете видеть, я передаю имя пользователя и пароль, используя файл secrets.yml в Rails 4.1. Когда я пытаюсь запустить сервер Rails, я получаю следующую ошибку:

/development.rb:52:in `
block in <top (required)>': uninitialized constant ExceptionNotification (NameError)

Я предполагаю, что это ошибка в геме exc_notification-rake, которая вызывает предыдущую версию уведомления об исключении, но я не уверен. Любая помощь с этим будет оценена!

Спасибо:)

Обновить:

Я уведомил об этом разработчика гемов exception_notification-rake. У меня есть все необходимые гемы и довольно ванильная настройка, поэтому я думаю, что это может быть ошибкой, которую нужно исправить в Rails 4.1

1 ответ

Решение

Как видно в этом выпуске, текущая, опубликованная версия ExceptionNotification не работает с рельсами 4.1

Пока новая версия не выпущена, вы можете просто использовать мастер-версию. В вашем Gemfile включите свой драгоценный камень следующим образом:

gem 'exception_notification', github: 'smartinez87/exception_notification'

Сопровождающий выпустил rc-версию, которую вы можете использовать следующим образом

gem 'exception_notification', '4.1.0.rc1'

Как только новая версия gem выпущена, вы можете переключиться на выпущенную версию (4.1.0). Это не должно занять слишком много времени, я думаю;)

Другие вопросы по тегам