我希望你能帮助我解决一个我已经困扰了很长时间的问题。我有一个带有门票的数据库。这些工单包含信息,例如状态。我的应用程序使用 Zendesk API 从支持票中获取信息并将它们存储到我的数据库中。
我想要做的是将票证的先前和当前状态存储到我的数据库中。我试图通过在更新我的数据库之前存储旧值来实现这一点。起初,这似乎工作得很好。每当我更改 Zendesk 中的状态时,我的应用程序会将 previous_state 更改为旧状态值,并将实际状态更改为它从 Zendesk 收集的状态。
但是,每当我刷新页面时都会出错。当这种情况发生时(并且该方法再次被调用),由于某种原因,它将 previous_state 和 state 放在相同的值上。我必须在我的更新或商店行之一中做错了,但我不知道是什么。我希望你们中的某个人可以帮助我。
Ticket 是 Ticket 数据库,client 是 zendesk 连接。最后一个循环检查 status 和 previous_status 是否相同,如果是,则尝试将先前的状态恢复到使用 zendesk 进行大更新之前的先前状态。这个想法是在实际状态发生变化之前,先前的状态保持不变。
previousTickets = Ticket.all
Ticket.all.each do |old|
old.update(:previous_status => old.status)
end
client.tickets.each do |zt|
Ticket.find_by(:ticket_id => zt.id).update(
subject: zt.subject,
description: zt.description,
ticket_type: zt.type,
status: zt.status,
created: zt.created_at,
organization_id: zt.organization_id,
)
end
Ticket.all.each do |newTicket|
if(newTicket.status == newTicket.previous_status)
b = previousTickets.find_by(:ticket_id => newTicket.ticket_id)
c = b.previous_status
newTicket.update(:previous_status => c)
end
end