我正在尝试使用我在Railscast about ActiveAttr中看到的方法构建联系表单(它为我提供了一个不受数据库支持的Message模型)。
此代码位于Messages:
的控制器中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
操作期间将联系表单输入(消息)发送到特定的电子邮件地址。有人请给我一个概述我需要知道或需要设置什么才能使这项工作?谢谢。
答案 0 :(得分:3)
您可以添加类似的内容。
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
然后在您的UserMailer app\mailers\user_mailer.rb
def send_message(message)
@message = message
email = "myemail@example.com"
mail to: email, subject: "You have received a message"
end
然后创建您的电子邮件视图app\views\user_mailer.txt.erb
You have a new message
Your message says
<%= @message.whatever_attribute %>