0
Wenn ein Agent nicht verifiziert wurde, möchte ich eine E-Mail generiert und an mich mit all ihren Namen gesendet werden. Nicht sicher, wo ich falsch gelaufen bin.Problem mit Rails Mailer und Rake Aufgabe
agent_card_mailer.rb
class AgentCardMailer < ActionMailer::Base
default from: "Help <[email protected]>"
def not_verified_message(agent_card)
@agent_card = agent_card
mail(:to => "[email protected]", :subject => "Agent License Issues")
end
end
not_verified_message.html.erb
Hi there,<br><br>
These agents have not been verified.<br><br>
<% @agent_cards.each do |agent_card| %>
<%= agent_card.agent.name %><br>
<% end %>
issue_with_license.rake
namespace :agent_cards do
desc 'Send out weekly email for agents with issues'
task remind_license_issues: :environment do
AgentCard.all.each do |agent_card|
if agent_card.verified == false
AgentCardMailer.not_verified_message(agent_card).deliver_now
end
end
end
end
Fehler:
ActionView::Template::Error: undefined method `each' for nil:NilClass
Welcher ist der richtige Weg? –
Wenn Sie Something unter einem anderen Namen aufrufen, kann die App sie nicht finden. Sie setzen '@ agent_card' im Controller, dann müssen Sie das selbe in der Ansicht verwenden. (Es ist nur im Umgang mit Modellen, die Sie manchmal pluralisieren wie '@ user = User.first' '@ posts = @ user.posts.all' Post ist hier pluralisiert, weil Sie viele erwarten) – Maxence
Eigentlich wird Ihr' jedes tun 'wahrscheinlich scheitern, es sei denn, 'agent_card', das Sie in der 'not_verified_message'-Methode übergeben, ist eine Sammlung, kein einzelner Datensatz. Gib uns alle deine Modelle, um dir zu helfen. Wenn, sagen wir mal, es einen Agenten gibt, der ein Elternteil von Agent_card ist, wie 'Agent has_many agent_cards' dann übergeben Sie den Agenten in der Methode und dann können Sie alle Agentenkarten in der Ansicht abrufen ... – Maxence