1

我正在尝试使用我在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操作期间将联系表单输入(消息)发送到特定的电子邮件地址。有人能给我大致了解一下我需要知道或需要设置什么才能完成这项工作吗?谢谢你。

4

1 回答 1

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

然后在你的 UserMailerapp\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 %>
于 2012-12-19T21:44:05.557 回答