0

私のテスト環境はsporkとcucumberを使用しています-テストを正常に実行でき、email_specを含めることにしました。ただし、電子メールテストは失敗しています

  1. 私のメールはdelayed_jobを使用して送信されます
  2. email_specは、メールをチェックする前に遅延ジョブを実行しています
  3. ただし、delayed_jobが失敗しているため、(hamlを使用する)電子メールは送信されません。

    Missing template user_response_mailer/send_contact_info with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en]
    
  4. エラーのハンドラーは、ハンドラーのリストに:hamlを表示しないことに注意してください。gemfileにhamlとhaml-railsgemがあり、アプリは非テスト環境でメールを適切に送信します(dev / prodに上記のようなエラーはありません)

主な質問は

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

1 に答える 1

0

これはスポークの問題であるに違いありません。HAML のインストール後に spork サーバーを再起動しましたか?

私が尋ねる理由: rspec/cucumber で email_spec を使用し、現在は spork を使用しており、アプリ内のすべてが HAML です。メールは、delayed_job ではなく、resque-mailer によって配信されます。私が抱えていた問題は、spork で実行すると、HAML テンプレートへの変更が反映されないことでした (つまり、HAML プラグインは、テンプレートのコンパイル済みでキャッシュされたコピーを使用します)。

エラーを見ると、HAML がロードされていません。もしそうなら、:handlers 配列はリストに :haml を持っていたでしょう。

私の場合、ビューのキャッシュを無効にすると問題が解決するはずです。

于 2012-01-02T20:35:57.420 に答える