我仍在学习 Rails,并使用 Devise。目前我正在开发一个错误/票证记录系统。在这个系统中,我们有一个用户创建的票证,分配给另一个用户,所有可以查看它的用户都可以在上面发布回复。
我想在用户将工单状态更改为已关闭时触发电子邮件。
但是,如果您是(票证的)创建者并且您将其关闭,则您不需要电子邮件,但您想通过电子邮件向分配给它的用户发送电子邮件。同样,如果您是受让人并且您将其关闭,则您不想发送电子邮件,但您确实想向创建者发送电子邮件。如果您既不是创建者也不是受让人,您仍然不需要电子邮件,但您确实想通过电子邮件发送其他两个。
该电子邮件将是一个小通知,指出票 # _已关闭。
对于这段代码应该去哪里,我有点困惑。控制器中没有新代码,但我在票证模型中添加了 before_update :email_update。
def email_update
#status field is changed
if status_changed? && status.description == "Closed"
if(current_user != assigned_to)
UserMailer.new_ticket_admin(assigned_to, self).deliver
end
if(current_user != user)
UserMailer.new_ticket_admin(user, self).deliver
end
end
end
但是,在其中一个模型中访问当前用户不是不好的做法吗?什么是更好的方法?