Rails 4.2.5无法找到模板

时间:2015-11-27 18:23:12

标签: ruby-on-rails

rails mailer存在问题,rails无法在我的邮件程序中找到方法,并声称无法在邮件程序类中找到该模板。

因此测试错误:

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

如您所见,这是调用ContactMailer类,以及其中的contact_email方法

ContactMailer类:

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

    mail cc: @email
  end
end

然而,测试失败,声称它找不到模板,这也是不可重现的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,ruby版本2.2.3,rails 4.2.5

谢谢!

1 个答案:

答案 0 :(得分:3)

测试是找到方法OK。问题是您缺少正确呈现contact_email所需的视图模板。

需要在 app / views / contact_mailer / contact_email.html.erb

中定义 如果您使用的是HAML,请

app / views / contact_mailer / contact_email.html.haml