Rails应用程序发送电子邮件两次

时间:2017-03-08 21:30:43

标签: ruby-on-rails actionmailer

我有一个带有以下代码的控制器操作:

class ContentsController < ApplicationController
  def index
  end

  def submit
  end

  def input_data
    if browser.device.mobile?
      @mobile = true
    else
      @mobile = false
    end
    @keyword = params[:keyword]

    @ip = request.ip
    Visitor.create(:template => @template,...., :screenh => @screenh)
  end

  def update
    @visitor = Visitor.order("created_at").last
    if @visitor.update(visitor_params)
      InquiryMailer.inquiry(@visitor).deliver_now
      render json: @visitor
    else
      flash[:alert] = "Unsuccessful - Contact Us By Phone."
    end         
  end

  private
    def visitor_params
      params.require(:visitor).permit(:name, :email, :message, :phone)
    end
end

一个看起来像这样的邮件程序..

class InquiryMailer < ApplicationMailer
  default from: "admin@example.com"

  def inquiry(user)
    @user = user
    @user.keyword = 'New Inquiry' unless @user.keyword
    mail(from: 'admin@example.com', 
         subject: @user.keyword.titleize, 
         to: 'richard@example.com', 
         reply_to: @user.email)
  end   
end

我正在尝试确定为什么我的Rails 5应用程序两次发送查询电子邮件。为了给出一些背景知识,input_data操作在加载页面后运行,并且在提交表单时运行更新操作。日志清楚地显示了两封电子邮件,但我无法弄清楚原因。

谢谢。

0 个答案:

没有答案