Отправка писем на несколько адресов электронной почты через запятую - PullRequest
5 голосов
/ 11 августа 2011

Привет. Я хочу отправлять электронные письма на все адреса электронной почты, указанные в текстовом поле.Для этого у меня есть следующий контроллер.

 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

Он работал нормально, но теперь выдает ошибку следующим образом

NoMethodError in InvitationsController#send_invites 
undefined method `username' for nil:NilClass

В чем проблема, пожалуйста, помогите мне.Спасибо

1 Ответ

3 голосов
/ 11 августа 2011

Похоже, что вы, возможно, ссылаетесь на нулевой объект в своем представлении электронной почты.

Я бы посмотрел в вашем представлении на действие UserMailer#invitation_controller и увидел, куда вы ссылаетесь username.

Затем, как только вы нашли это, отследите объект и выясните, почему он равен nil, затем добавьте некоторое тестирование вокруг него (т.е. if current_user.nil? ...).

...