Надеясь, что кто-то может указать мне в правильном направлении.DataMapper: извлечение только измененных свойств перед обновлением записи
Я хочу знать, есть ли способ для просмотра/извлечения значений новых и старых свойств с помощью DataMapper до вызова метода update
и сравнения значений.
Сценарий выглядит следующим образом: У меня есть билетный ресурс, и мне нужно уведомить различные заинтересованные стороны об изменениях, внесенных в билет. Уведомление по электронной почте об изменениях состояния оплаты, уведомление SMS, когда прибудет билет назначен вспомогательным персонал и т.д.
В настоящее время в моем классе по продаже билетов, я настроил обратный вызов/фильтр так:
before :update, :notify_changes
def notify_changes
ticket = Ticket.get(self.id) # Get the original
if ticket.status != self.status
# Send out the email notification
end
if ticket.assigned_support != self.assigned_support
# Send out the SMS notification
end
# ... etc
end
Есть ли лучший или более эффективный способ сделать это, не удаляя базу данных снова на ticket = Ticket.get(self.id)
?
ли вам не нравится, прежде чем обновление обратного вызова? Или 'if ticket.status! = Self.status'? – AdamT
Я надеялся найти способ сделать это, не ударяя базу данных снова в 'ticket = Ticket.get (self.id)'. Если объект знает, что он был изменен, то, надеюсь, он будет знать, что изменилось, не так ли? @AdamT – SeanNieuwoudt