Spork, delayed_job, email_spec и haml

В моем тестовом окружении используются spork & cucumber - я смог нормально выполнить свои тесты и решил включить email_spec. Однако тесты электронной почты не проходят

  1. Мои письма отправляются с использованием delayed_job
  2. email_spec запускает отложенную работу перед проверкой электронной почты
  3. Однако электронные письма (которые используют haml) не отправляются, потому что delayed_job терпит неудачу с

    Missing template user_response_mailer/send_contact_info with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en]
    
  4. Обратите внимание, что обработчики ошибки не показывают:haml в своем списке обработчиков. Я получил гем haml и haml-rails в моем gemfile, и мое приложение отправляет почту должным образом в non-test env (нет таких ошибок, как указано выше в dev/prod)

Главный вопрос

    Why is haml not getting loaded automatically when my email templates are being rendered via delayed_job running under spork ?

1 ответ

Это должно быть проблема спорк, ничего больше. Вы перезапустили свой spork-сервер после установки HAML?

Я спрашиваю, потому что: я использую email_spec с rspec/cucumber и теперь spork, и все в моем приложении - HAML. Письма доставляются через resque-mailer, а не delayed_job. Проблема, с которой я столкнулся, заключалась в том, что при работе с spork изменения в шаблонах HAML не регистрировались (т. Е. В плагине HAML используются предварительно скомпилированные кэшированные копии шаблонов).

Глядя на вашу ошибку, HAML просто не загружается. Если бы это было так, массив:handlers имел бы:haml в списке.

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

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