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
谢谢!
答案 0 :(得分:3)
测试是找到方法OK。问题是您缺少正确呈现contact_email所需的视图模板。
需要在 app / views / contact_mailer / contact_email.html.erb
中定义 如果您使用的是HAML,请或 app / views / contact_mailer / contact_email.html.haml 。