Spork, delayed_job, email_spec и haml

Моя тестовая среда использует spork и огурец — я могу нормально запускать свои тесты и решил включить 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, и мое приложение правильно отправляет почту в нетестовой среде (нет таких ошибок, как указано выше, в dev/prod)

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

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

person Mohith Thimmaiah    schedule 28.12.2011    source источник


Ответы (1)


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

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

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

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

person Kenneth Kalmer    schedule 02.01.2012