我非常喜欢铁路新手!
我正在尝试为一种在线委员会会议编写方法。有固定数量(9)的用户。当用户提出讨论和/或投票的主题时,提交按钮需要向所有成员发送电子邮件。
app / mailers / user_mailer.rb中的我有: -
class UserMailer < ApplicationMailer
def new_topic_alert(topic)
@users = User.all
@users.each do |user|
mail to: user.email, subject: "New topic alert"
end
end
end
作为app / controllers / topics_controller.rb的一部分,我有: -
def send_alert
@topic = Topic.new(topic_params)
UserMailer.new_topic_alert(@topic).deliver_now
end
和: -
def create
@topic = Topic.new(topic_params)
if @topic.save
send_alert
flash[:info] = "New Topic alert emails sent."
redirect_to root_url
else
render 'new'
end
end
请注意,为什么user_mailer中的循环只向列表的最后一个人发送电子邮件。通过合并“byebug”,我已经证明它可以浏览所有用户的电子邮件。
答案 0 :(得分:1)
尝试如下:
def send_alert
@topic = Topic.new(topic_params)
users = User.all
users.each do |u|
UserMailer.new_topic_alert(@topic, u).deliver_now
end
end
并像
一样更新邮件程序class UserMailer < ApplicationMailer
def new_topic_alert(topic,user)
mail to: user.email, subject: "New topic alert"
end
end