2012-12-19 43 views
1

我試圖使用我在Railscast about ActiveAttr(它給了我一個消息模型不支持數據庫)中看到的方法來建立聯繫表單。如何在Rails中爲聯繫人表單設置郵件傳遞?

此代碼是在控制器消息:

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行動。請有人給我一個關於我需要知道或需要建立的工作的總體概述?謝謝。

回答

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 = "[email protected]" 
    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 %> 
+0

是感謝,但我的問題是關於日e代碼在控制器的創建操作中。 :-) – hlh

+0

剛剛添加了一個鏈接到Rails郵件指南。 :) –

+0

謝謝!指南似乎主要是通過應用程序向其他用戶發送電子郵件,但是如何通過電子郵件將表單輸入發送給我自己?這就是我被困在... – hlh

相關問題