2017-07-22 1 views
0

J'ai un modèle agent et un modèle agent_card. Une fois que quelqu'un embauche une carte d'agent est créée pour eux. J'essaie d'envoyer un expéditeur une fois cette personne embauchée, mais je ne sais pas pourquoi cela ne fonctionne pas. Toute aide est appréciée.Problème avec l'expéditeur Rails pas de tir

Agents Controller - Utiliser Méthode:

def employ 
    @agent.employee = true 
    @agent.on_probation = true 
    @agent.save(validate: false) 
    AgentCard.create(agent_id: @agent.id, hire_date: Date.current) 
    AgentCardMailer.agent_card_message(@agent_card, @agent).deliver_later 
    respond_to do |format| 
    format.html { redirect_to :back } 
    format.json { head :no_content } 
    end 
end 

agent_card_mailer.rb:

class AgentCardMailer < ActionMailer::Base 
    default from: "[email protected]" 

    def agent_card_message(agent_card, agent) 
    @agent_card = agent_card 
    @agent = agent 

    mail(:to => "[email protected]", :subject => "New Agent Card Created!") 
    end 
end 

agent_card.html.erb:

Hiya Mike,<br><br> 

A new Agent Card has been created!<br><br><br> 

Name: <%= @agent_card.agent.name %><br><br> 
Date Created: <%= @agent_card.created_at.strftime("%m/%d/%Y @ %l:%M %p") %> 

Erreur:

2017-07-22T14:57:19.132Z 1614 TID-ox63wsdb0 WARN: {"class"=>"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper", "wrapped"=>"ActionMailer::DeliveryJob", "queue"=>"mailers", "args"=>[{"job_class"=>"ActionMailer::DeliveryJob", "job_id"=>"c72ff671-6834-4274-9668-664305ff4df2", "queue_name"=>"mailers", "arguments"=>["AgentCardMailer", "agent_card_message", "deliver_now", nil, {"_aj_globalid"=>"gid://nooklyn/Agent/61967"}], "locale"=>"en"}], "retry"=>true, "jid"=>"a8ea332f8212f34f6ca1aedf", "created_at"=>1500735186.9071932, "enqueued_at"=>1500735439.0713248, "error_message"=>"undefined method `agent' for nil:NilClass", "error_class"=>"ActionView::Template::Error", "failed_at"=>1500735187.086685, "retry_count"=>4, "retried_at"=>1500735439.130213} 

Répondre

0

Dans la vue, je n'appelais pas l'agent.

Il faut être:

Name: <%= @agent.agent_card.agent.name %><br><br> 
Date Created: <%= @agent.agent_card.created_at.strftime("%m/%d/%Y @ %l:%M %p") %> 

programmation un samedi ... amirite ?!