Action Mailer 预览:在 MessageMailerPreview 中找不到电子邮件 'new'
Action Mailer Preview: Email 'new' not found in MessageMailerPreview
我有三个邮件程序,都可以用。但是对于一个(联系表),邮件预览不起作用,我不明白为什么。
错误信息:
undefined method 'email'
def new_message(message)
@message = message
mail from: message.email, subject: "Message from #{message.name}"
end
在 app/mailers/message_mailer.rb 我有:
class MessageMailer < ApplicationMailer
default to: "<info@myemail.com>",
return_path: "<info@myemail.com>"
def new_message(message)
@message = message
mail from: message.email, subject: "Message from #{message.name}"
end
end
app/views/messages/new的一部分。html.erb:
<%= form_for :message, url: contact_path do |f| %>
<%= f.label :name %>
<%= f.text_field :name, placeholder: 'Name', class: 'form-control' %>
<%= f.label :email %>
<%= f.email_field :email, placeholder: 'Email', class: 'form-control' %>
<%= f.label :content %>
<%= f.text_area :content, placeholder: 'Your message…', class: 'form-control' %>
<%= f.submit "Send", class: "btn btn-primary" %>
<% end %>
test/mailers/previews/test_mailer_preview.rb:
class MessageMailerPreview < ActionMailer::Preview
message = [name: "My Name", email: "noreply@example.com", content: "This is my message"]
MessageMailer.new_message(message)
end
end
联系表在开发服务器上正常工作,其他两个邮件程序(密码重置和身份验证)也可以正常工作,对于最后两个邮件程序,预览也可以正常工作。这两个邮件程序在邮件程序中也有 model.email,它确实有效。我不明白为什么联系人表单邮件程序的预览会产生错误消息。
您的邮件程序 class 不是从 ActionMailer
继承的,如果您已经有一个 ApplicationMailer class 这样做就没问题,您可以 post 的代码吗它请?否则试试这个。
class MessageMailer < ActionMailer::Base
我发现如果我更换
message = [name: 'My Name', email: 'noreply@example.com', content: 'This is my message']
和
message = Message.first
message.email = "example@example.com"
甚至只是
message = Message.first
预览确实有效。不明白为什么,因为我希望原来的公式也有效。
我有三个邮件程序,都可以用。但是对于一个(联系表),邮件预览不起作用,我不明白为什么。
错误信息:
undefined method 'email'
def new_message(message)
@message = message
mail from: message.email, subject: "Message from #{message.name}"
end
在 app/mailers/message_mailer.rb 我有:
class MessageMailer < ApplicationMailer
default to: "<info@myemail.com>",
return_path: "<info@myemail.com>"
def new_message(message)
@message = message
mail from: message.email, subject: "Message from #{message.name}"
end
end
app/views/messages/new的一部分。html.erb:
<%= form_for :message, url: contact_path do |f| %>
<%= f.label :name %>
<%= f.text_field :name, placeholder: 'Name', class: 'form-control' %>
<%= f.label :email %>
<%= f.email_field :email, placeholder: 'Email', class: 'form-control' %>
<%= f.label :content %>
<%= f.text_area :content, placeholder: 'Your message…', class: 'form-control' %>
<%= f.submit "Send", class: "btn btn-primary" %>
<% end %>
test/mailers/previews/test_mailer_preview.rb:
class MessageMailerPreview < ActionMailer::Preview
message = [name: "My Name", email: "noreply@example.com", content: "This is my message"]
MessageMailer.new_message(message)
end
end
联系表在开发服务器上正常工作,其他两个邮件程序(密码重置和身份验证)也可以正常工作,对于最后两个邮件程序,预览也可以正常工作。这两个邮件程序在邮件程序中也有 model.email,它确实有效。我不明白为什么联系人表单邮件程序的预览会产生错误消息。
您的邮件程序 class 不是从 ActionMailer
继承的,如果您已经有一个 ApplicationMailer class 这样做就没问题,您可以 post 的代码吗它请?否则试试这个。
class MessageMailer < ActionMailer::Base
我发现如果我更换
message = [name: 'My Name', email: 'noreply@example.com', content: 'This is my message']
和
message = Message.first
message.email = "example@example.com"
甚至只是
message = Message.first
预览确实有效。不明白为什么,因为我希望原来的公式也有效。