我正在尝试使用我在Railscast中看到的关于ActiveAttr的方法构建一个联系表单(它给了我一个不受数据库支持的消息模型)。
此代码位于消息的控制器中:
class MessagesController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
# TODO send message here
redirect_to root_url, notice: "Message sent! Thank you for contacting us."
else
render "new"
end
end
end
我不知道我需要编写哪种代码才能在create
操作期间将联系表单输入(消息)发送到特定的电子邮件地址。 有人可以给我一个大致的概述,我需要知道或需要设置什么才能完成这项工作吗?谢谢。
您可以添加这样的东西。
def create
@message = Message.new(params[:message])
if @message.valid?
UserMailer.send_message(@message).deliver
redirect_to whatever_path, notice: "Message sent."
else
render "new"
end
end
您将需要创建一个邮件程序。这很容易,Rails已经有一个关于如何做到这一点的很好的指南。http://guides.rubyonrails.org/action_mailer_basics.html
创建邮件程序
rails generate mailer UserMailer
然后在您的用户邮件appmailersuser_mailer.rb
def send_message(message)
@message = message
email = "myemail@example.com"
mail to: email, subject: "You have received a message"
end
然后创建电子邮件视图appviewsuser_mailer.txt.erb
You have a new message
Your message says
<%= @message.whatever_attribute %>