将电子邮件发送到多个以逗号分隔的电子邮件地址

man*_*ale 5 ruby model-view-controller ruby-on-rails ruby-on-rails-3

嗨,我想发送电子邮件到文本字段中输入的所有电子邮件逗号地址.我有跟随控制器这样做.

 def send_invites  #friend invites
     @emails_txt = params[:emails_txt]
     @emails = @emails_txt.split(/\s*,\s*/)
      @ve = []
      @emails.each do |email|
         if email =~ /\b[A-Z0-9._%a-z-]+@(?:[A-Z0-9a-z-]+.)+[A-Za-z]{2,4}\z/
           @ve << email
        end
      end
@all_ok = true
@errors = []

    @ve.each do |email|

        @invitation = Invitation.new
        @invitation.sender = current_user
        @invitation.recipient_email = email

      if @invitation.save
        UserMailer.invitation_notification(current_user, @invitation, new_user_registration_url+"/#{@invitation.token}").deliver
      else          
        @all_ok = "false"
        @errors << @invitation.errors       
      end
   end
end
Run Code Online (Sandbox Code Playgroud)

它工作正常,但现在它给出如下错误

NoMethodError in InvitationsController#send_invites 
undefined method `username' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

什么问题请帮帮我.谢谢

Mat*_*age 3

看起来您可能在电子邮件视图中引用了一个 nil 对象。

我会在您的视图中查找操作UserMailer#invitation_controller并查看您引用的位置username

然后,一旦发现这一点,追溯该对象并找出其为零的原因,然后围绕该对象添加一些测试(即if current_user.nil?......)。