我有两个模型Ticket和TicketComment,其中TicketComment是Ticket的子级。
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,用户添加了评论“text”)发送到一个电子邮件中?