我有两个模型Ticket和TicketComment, TicketComment 是 Ticket 的孩子。
票证.rb
class Ticket < ActiveRecord::Base
has_many :ticket_comments, :dependent => :destroy, :order => 'created_at DESC'
# allow the ticket comments to be created from within a ticket form
accepts_nested_attributes_for :ticket_comments, :reject_if => proc { |attributes| attributes['comment'].blank? }
end
ticket_comment.rb
class TicketComment < ActiveRecord::Base
belongs_to :ticket
validates_presence_of :comment
end
我想做的是模仿 Trac 中的功能,如果用户对工单进行更改和/或添加评论,则会向分配给工单的人员发送一封电子邮件。
我想使用 after_update 或 after_save 回调,以便在发送电子邮件之前知道信息已全部保存。
如何检测模型的更改(ticket.changes)以及是否创建了新评论(ticket.comments)并在一封电子邮件中发送此更新(x 更改为 y,用户添加了评论“文本”)回调方法?