2015-10-22 71 views
0

我目前使用mail_form + simple_form gems在用戶在我的網站上提交「聯繫我們」表單後向我發送電子郵件。然後我也將這些字段提交給數據庫。這裏的一切工作正常。用mail_form發送感謝郵件

我希望能夠在提交後直接向用戶的電子郵件地址發送第二封電子郵件,並在郵件中提供「謝謝」信息和其他一些副本。我知道一條消息可以用flash發佈,但給我的用戶發郵件會更好。

有人可以根據下面的代碼提供一些關於如何完成這項工作的指導嗎?謝謝!

型號:page.rb

class Page < ActiveRecord::Base 
    include MailForm::Delivery 
    attribute :name,  :validate => true 
    attribute :company 
    attribute :email,  :validate => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i 
    attribute :message 
    attribute :nickname, :captcha => true 

    def headers 
    { 
     :subject => "New Lead from Composites First", 
     :to => "[email protected]", 
     :from => "[email protected]" 
    } 
    end 
end 

控制器:pages_controller.rb

class PagesController < ApplicationController 
    def index 
    end 

    def basicform 
    @page = Page.new 
    end 

    def create 
    @page = Page.create(page_params) 
    if @page.save 
     respond_to do |format| 
     format.html { redirect_to '/' } 
     format.json { } 
     end 
    else 
     respond_to do |format| 
     format.html { } 
     format.json { } 
     end 
    end 
    @page.request = request 
    if @page.deliver 
    else 
     flash[:error] = 'Cannot send message.' 
     format.html { redirect_to '/' } 
    end 
    end 

    private 

    def page_params 
     params.require(:page).permit(:name, :company, :email, :message) 
    end 
end 

回答

0

你可以寫一個after_create回調觸發感謝您發送電子郵件。

在如下頁面模型寫回調:

after_create :send_thank_you_email 

def send_thank_you_email 
    email = self.from 
    MyMailer.send_thank_you_email(email).deliver_now 
end 

現在MyMailer寫​​行動,創造感謝你的郵件郵件視圖。希望這可以幫助。謝謝!

相關問題