Spork, delayed_job, email_spec и haml
В моем тестовом окружении используются spork & cucumber - я смог нормально выполнить свои тесты и решил включить email_spec. Однако тесты электронной почты не проходят
- Мои письма отправляются с использованием delayed_job
- email_spec запускает отложенную работу перед проверкой электронной почты
Однако электронные письма (которые используют haml) не отправляются, потому что delayed_job терпит неудачу с
Missing template user_response_mailer/send_contact_info with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en]
Обратите внимание, что обработчики ошибки не показывают: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 в списке.
В моем случае отключение кэширования представлений должно решить проблему, я все еще пытаюсь разобраться с этим.