0
如果代理程序未經過驗證,我希望生成一封電子郵件並將其全部發送給我。不知道我錯了哪裏。Rail郵件程序和Rake任務的問題
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
錯誤:
ActionView::Template::Error: undefined method `each' for nil:NilClass
這是正確的方法嗎? –
如果您通過其他名稱調用Something,應用程序無法找到它。您在控制器中設置'@ agent_card',然後您必須在視圖中使用相同的名稱。 (只有在處理模型時,你有時像'@ user = User.first'' @ posts = @ user.posts.all'這樣的複數形式,因爲你期望很多,所以在這裏複數化) – Maxence
其實你的'each do'可能除非您在'not_verified_message'方法中傳遞的'agent_card'是一個集合,而不是單個記錄。給我們所有的模型,以幫助你。如果我們假設有一個代理是Agent_card的父代,如'Agent has_many agent_cards',然後在方法中傳遞代理,然後可以在視圖中檢索所有代理卡片... – Maxence