2015-11-27 91 views
1

使用rails郵件程序時出現問題,rails無法在我的郵件程序中找到方法,並聲稱在郵件程序類中找不到該模板。Rails 4.2.5無法找到模板

因此測試錯誤:

class ContactMailer < ApplicationMailer 
    def contact_email(email, name, subject, comment) 
    @email = email 
    @name = name 
    @subject = subject 
    @comment = comment 

    mail cc: @email 
    end 
end 

但是:

class ContactMailerTest < ActionMailer::TestCase 
    test "should return contact email" do 
    mail = ContactMailer.contact_email("[email protected]", "Example", 
            "SomeExample", @comment = "Hello") 
    assert_equal ['[email protected]'], mail.to 
    assert_equal ['[email protected]'], mail.from 
    end 
end 

正如你所看到的,這是調用ContactMailer類,並在其中

ContactMailer類中的方法CONTACT_EMAIL測試失敗,聲稱它無法找到模板,這也是不可重現的IE我有另一個項目具有相同的代碼,但沒有問題出現,是否有解決方案是什麼?

Returned Error: 
    1) Error: 
ContactMailerTest#test_should_return_contact_email: 
ActionView::MissingTemplate: Missing template contact_mailer/contact_email  with "mailer". Searched in: 
    * "contact_mailer" 

app/mailers/contact_mailer.rb:9:in `contact_email' 
test/mailers/contact_mailer_test.rb:8:in `block in <class:ContactMailerTest>' 

3 runs, 2 assertions, 0 failures, 1 errors, 0 skips 

我在Windows上運行的RubyMine,紅寶石版本2.2.3,4.2.5軌道

謝謝!

回答

3

測試是找到方法確定。問題是你缺少正確呈現contact_email所需的視圖模板。在應用程序/視圖/ contact_mailer/contact_email.html.erb被定義

需求

應用程序/視圖/ contact_mailer/contact_email.html.haml如果您正在使用HAML。

+0

確切的問題,已經定義.html.haml.erb,沒有找到模板 – kxdan

+0

@kxdan,你可能想標記rlarcombe爲接受的答案 – amree