2017-09-22 3 views
0

Le problème a commencé après avoir ajouté le rental_application_personal_details et tenté d'accéder à first_name à partir de la table.Problème d'accès aux données pour Rails Mailer

Controller:

def create 
    unless @rental_application.submittable? 
    redirect_to @rental_application, notice: "You can't submit the rental application unless you complete it!" 
    return 
    end 

    if @rental_application.submitted! 
    RentalApplicationMailer.sales_agent_message(@rental_application, @rental_application_personal_details, @agent).deliver_now 
    if @rental_application.payment_request.authorized 
    CapturePaymentJob.perform_later(@rental_application.payment_request) 
    else 
     @rental_application.payment_request.void! 
    end 

    redirect_to @rental_application, notice: 'Your application was submitted! :)' 
    else 
    redirect_to @rental_application, notice: 'We were unable to submit your application.' 
    end 
end 

LocationCourriel Mailer:

def sales_agent_message(rental_application, rental_application_personal_details, agent) 
    @rental_application = rental_application 
    @rental_application_personal_details = rental_application_personal_details 
    @agent = agent 
    @sales_agent = @rental_application.sales_agent.email 
    mail(:to => @sales_agent, :subject => "New Rental Application Recieved!") 
end 

Sales Agent Message:

Hiya!

<% = @ location_application_personal_details.first_name%> vous a envoyé une demande de location! %>

Voir ce <% = link_to '! ICI', matrix_rental_applications_url%>

Erreur:

enter image description here

+0

@rental_application_personal_details est nul .. vérifier ce qui vient en elle. – krishnar

Répondre

1

@rental_application_personal_details semble ne jamais être mis partout. Dans votre méthode create, vous l'utilisez mais vous ne lui avez jamais donné de valeur en premier lieu. Ainsi, c'est nul. nil.first_name est l'erreur que vous avez actuellement.

0

Vous pouvez l'écrire comme

if @rental_application.submitted! && @rental_application_personal_details.present? 

//code to send the mail 

end