我在Rails 4中创建了一个无表格模型,以支持轻松发送电子邮件。
所以我有以下模型:
class Message
include ActiveModel::Model
attr_accessor :subject, :content, :email
end
以下控制器:
class MessagesController < ApplicationController
def new
@message = Message.new
end
def create
message = Message.new(params[:message])
if message.valid?
UserMailer.send(message)
redirect_to :back, :notice => "Email was successfully sent."
else
flash[:alert] = "You must fill all fields."
render 'new'
end
end
end
表格:
<%= form_for @message do |f| %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :subject %>
<%= f.text_field :subject %>
<%= f.label :content %>
<%= f.text_area :content, rows: 5, class: 'span7' %>
<%= f.submit "Send Email", class: 'btn btn-primary' %>
<% end %>
但是当我尝试在这里发送电子邮件时,我得到的是:
#<Message:0x007fcc98e8c760 @errors=# <ActiveModel::Errors:0x007fcc98e96788 @base=#<Message:0x007fcc98e8c760 ...>, @messages={}>, @email="sdsadas@adasdas.com", @subject="adasdas", @content="asdsad", @validation_context=nil> is not a symbol
错误说明在这里UserMailer.send(消息)
有人可以帮助我吗?
答案 0 :(得分:0)
您在UserMailer
上调用的Kernel.send
方法只接受符号或字符串,而您尝试向其传递Message
的实例。您可能正在寻找UserMailer
的其他方法。通常,您将在ActionMailer::Base
子类上定义和调用自己的方法。有关详细信息,请参阅the guide。