Rails 3 + action mailer - Cannot loop to send emails

后端 未结 2 1256
长发绾君心
长发绾君心 2020-12-29 04:55

A user can create an object, and he has followers that I want to alert when he creates this object.

controller:

if @project.save
  f         


        
2条回答
  •  清酒与你
    2020-12-29 05:26

    ActionMailer does not support sending multiple messages with one deliver call. You have to move the loop outside of the new_project method:

    Instead of

    UserMailer.new_project(@project).deliver
    

    try this:

    @followers = @project.owner.followers.all
    @followers.each do |f|
        UserMailer.new_project(@project, f).deliver
    end
    

    The new_project method then could look like this:

    def new_project(project, follower)
        @u = User.find(f.follower)
        mail(:to => @u.email,
             :from => '"Beatrix Kiddo" ',
             :subject => "#{project.owner.name} created a new project")
    end
    

提交回复
热议问题