我想在我的Rails应用程序上发布文章时发送通知邮件
梅勒类
class AdminMailer < ApplicationMailer
def notification_mail(user)
@user = user
mail(to: @user.email, subject: '**TEST**')
end
end
控制器
def create
@idee = Idee.new(idee_params)
users = User.all
respond_to do |format|
if @idee.save
users.each do |user|
AdminMailer.notification_mail(user).deliver_now
end
format.html { redirect_to @idee, notice: 'Votre idée a bien été publiée.' }
format.json { render :show, status: :created, location: @idee }
else
format.html { render :new }
format.json { render json: @idee.errors, status: :unprocessable_entity }
end
end
问题在于它只向一个用户发送电子邮件而我不知道原因。有没有办法解决这个问题并向所有用户发送电子邮件?
答案 0 :(得分:1)
或者你可以尝试这个
Idee.rb
after_create :send_email_to_users
def send_email_to_users
User.all.each do |user|
AdminMailer.notification_mail(user).deliver_now
end
end
答案 1 :(得分:0)
将其更改为实例变量:
def create
@idee = Idee.new(idee_params)
@users = User.all
respond_to do |format|
if @idee.save
@users.each do |user|
AdminMailer.notification_mail(user).deliver_now
end
format.html { redirect_to @idee, notice: 'Votre idée a bien été publiée.' }
format.json { render :show, status: :created, location: @idee }
else
format.html { render :new }
format.json { render json: @idee.errors, status: :unprocessable_entity }
end
end
end