5

हाय मैं टेक्स्ट फ़ील्ड में दर्ज सभी ईमेल कॉमा पते पर ईमेल भेजना चाहता हूं। मेरे पास ऐसा करने के लिए निम्नलिखित नियंत्रक है।एकाधिक अल्पविराम से अलग ईमेल पते पर ईमेल भेजना

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-][email protected](?:[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 

इस प्रकार है क्या समस्या मेरी मदद करें। धन्यवाद

उत्तर

3

ऐसा लगता है कि आप शायद अपने ईमेल व्यू में एक शून्य ऑब्जेक्ट का संदर्भ दे रहे हैं।

मैं UserMailer#invitation_controller कार्रवाई के लिए आपके विचार में देखता हूं और देखता हूं कि आप username पर संदर्भित करते हैं।

फिर, एक बार जब आप पाते हैं, तो ऑब्जेक्ट को वापस ढूंढें और पता लगाएं कि इसकी शून्य क्यों है, फिर उसके आसपास कुछ परीक्षण जोड़ें (यानी if current_user.nil? ...)।

+0

उत्तर के लिए धन्यवाद। मेरे विचार से आप सही है। जब मैं ईमेल पते की सूची प्राप्त करता हूं तो मुझे साइन आउट हो रहा है और यही कारण है कि 'current_user' शून्य हो जाता है। –

+0

ऐसा इसलिए था क्योंकि मैं रेल के टैग के लिए form HTML के बजाय सामान्य HTML फॉर्म का उपयोग कर रहा था। Form_for टैग का उपयोग करके स्वचालित रूप से फ़ॉर्म के भीतर अपना एप्लिकेशन टोकन शामिल होता है जो सुरक्षा चिंताओं के संबंध में बहुत महत्वपूर्ण है। –

संबंधित मुद्दे