Ruby on rails 防止向用户发送电子邮件(如果他没有';t填写电子邮件字段

Ruby on rails 防止向用户发送电子邮件(如果他没有';t填写电子邮件字段,ruby-on-rails,ruby,email,Ruby On Rails,Ruby,Email,我有一个Rails应用程序,其中我有一个用于主页的访问者控制器和一个用于联系人表单的联系人控制器。我的网站必须是单页的,所以我调用Contact.new inside visitors控制器 执行提交操作时,在contacts_controller中,用户被重定向到根路径,处于保存或出错状态 有一个电子邮件字段,用于向用户发送邮件。当用户未填充时,会发生倒退,并且由于某种原因,用户被重定向到联系人路径而不是根路径 它引发以下错误:发送邮件需要SMTP收件人地址。将邮件smtp信封设置为、收件人、

我有一个Rails应用程序,其中我有一个用于主页的访问者控制器和一个用于联系人表单的联系人控制器。我的网站必须是单页的,所以我调用Contact.new inside visitors控制器

执行提交操作时,在contacts_controller中,用户被重定向到
根路径
,处于保存或出错状态

有一个电子邮件字段,用于向用户发送邮件。当用户未填充时,会发生倒退,并且由于某种原因,用户被重定向到联系人路径而不是根路径

它引发以下错误:
发送邮件需要SMTP收件人地址。将邮件smtp信封设置为、收件人、抄送或密件抄送地址。

这是读取电子邮件并发送给用户的功能:
VisitorMailer.landing\u form\u notify\u user(@contact)。立即发送
不填充它会将用户重定向到联系人索引

问题:如果用户未填写电子邮件字段,我如何停止执行此功能?

app/controllers/visitors\u controller.rb

app/mailers/visitors\u mailer.rb

class VisitorMailer”mygmail@gmail.com"
def着陆表单通知用户(用户)
@用户=用户
电子邮件_,_name=%(“#{@user.name}”)
邮寄(
致:“#{@user.email}”,
主题:“#{@user.name}”+”,您好
)
结束
结束

VisitorMailer.landing\u form\u notify\u user(@contact)。如果@contact.email.present?
如果您不想在电子邮件地址丢失的情况下尝试发送电子邮件,那么您所要做的就是在呼叫邮件发送者之前检查电子邮件地址

 def create
   @contact = Contact.new(contact_params)

   respond_to do |format|
     if @contact.save
       unless @contact.email.blank?
         VisitorMailer.landing_form_notify_user(@contact).deliver_now
       end
       # more stuff to do if save succeeds
     else
       # stuff to do if save fails
     end
   end
 end
 def create
    @contact = Contact.new(contact_params)

    respond_to do |format|
      if @contact.save
        VisitorMailer.landing_form_notify_user(@contact).deliver_now
        format.html { redirect_to root_path, notice: 'Good' }
        format.json { render root_path, status: :created, location: @contact }
      else
        format.html { render root_path }
        format.json { render json: @contact.errors, status: :unprocessable_entity }
      end
    end
  end
  class VisitorMailer < ApplicationMailer
    default :from => "mygmail@gmail.com"

    def landing_form_notify_user(user)
         @user = user
         email_with_name = %("#{@user.name}" <#{@user.email}>)
         mail(
           to: "#{@user.email}",
           subject: "#{@user.name}" + ', hi.'
         )
    end
  end
 def create
   @contact = Contact.new(contact_params)

   respond_to do |format|
     if @contact.save
       unless @contact.email.blank?
         VisitorMailer.landing_form_notify_user(@contact).deliver_now
       end
       # more stuff to do if save succeeds
     else
       # stuff to do if save fails
     end
   end
 end