簡體   English   中英

發送電子郵件給所有注冊用戶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM