[英]Send email to all registered users
我有點卡住,需要一些幫助!
我創建了一個UserMailer,並嘗試通過一種方法,可以向所有注冊用戶發送電子郵件。 我知道可以將電子郵件發送給所有注冊用戶,但是無法附加主題和內容。 主題和內容都在時事通訊模型中使用表格創建。 如果我嘗試在UserMailer mail to: emails, subject: newsletter.subject, content: newsletter.content
上將其傳遞mail to: emails, subject: newsletter.subject, content: newsletter.content
它將返回錯誤。
如果我將其保留為波紋管,它將返回…… NoMethodError in Newsletters#deliver
undefined method 'subject'for nil:NilClass
…… undefined method 'subject'for nil:NilClass
……。 在視圖頁面中。
關於我可能會缺少的任何想法? 先感謝您!!
模型關聯為:
user.rb has_many:新聞通訊
newsletter.rb includes_to:user
class UserMailer < ApplicationMailer
default from: ‘example@gmail.com'
def newsletter(users_email)
@users = User.all
emails = @users.collect(&:email).join(", ")
mail(to: emails, subject: 'My Newsletter')
end
class NewslettersController < InheritedResources::Base
def deliver
@newsletter = Newsletter.find params[:id]
UserMailer.newsletter(@newsletter).deliver
flash[:notice] = "Newsletter currently being delivered."
redirect_to newsletters_url
end
Rails.application.routes.draw do
resources :newsletters do
member do
post :deliver
end
end
視圖頁面上的鏈接為<%= link_to "Deliver", deliver_newsletter_path(newsletter), :confirm => 'Are you sure?', :method => :post %>
並在視圖頁面中:
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1>Helo <%= @users.name %></h1>
<p>
Subject <%= @newsletter.subject %> <br>
</p>
<p>
Subject <%= @newsletter.content %> <br>
</p>
<p>
.<br>
</p>
</body>
</html>
在郵件程序中,您需要將@newsletter
傳遞到郵件程序視圖,就像從控制器傳遞到常規視圖一樣。
def newsletter(newsletter)
@newsletter = newsletter
@users = User.all
# ...
end
我認為問題出在您的新聞通訊方法中。 參數是不使用users_email
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.