嗨,我想发送电子邮件到所有在文本字段中输入的电子邮件逗号地址。我有一个跟踪控制器。
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
有什么问题请帮帮我。谢谢你
最佳答案
看起来您可能正在引用电子邮件视图中的nil对象。
我将在您的视图中查找UserMailer#invitation_controller
操作,并查看您引用username
的位置。
然后,一旦你发现了它,追踪它并找出它为零的原因,然后围绕它添加一些测试(即if current_user.nil?
…)。