这是一个票务系统。
当您关闭工单时,有一列resolution
。用户输入解决方案,即“此票证由 xyz 解决”。该列是文本字段类型,而不是字符串。所以你去关闭它并输入某种分辨率。但是当票被删除时,该字段不会得到“更新”。
摘要:当票被销毁时,更新票模型上的解析列。推理:决议必须通过电子邮件(通过 Sendgrid)和 SMS(通过 Twilio)。目前,它将传递分辨率的默认值(无论创建票证时该值可能是什么)。
在初始票证创建表单中,我有resolution
一个隐藏字段,如下所示:
<%= f.hidden_field :resolution, :value => "No Resolution Provided" %>
我试过的:
在ticket.rb
模型中:
before_destroy { self.update_attribute(:resolution, "a hardcoded value here") }
所以确保它有效,但这不是从表单中读取的,只是一个硬编码的值。如果我错了,请纠正我,但我试图做的事情应该在控制器中完成,对吗?
我已经尝试过,before_action
但没有取得太大的成功。此方法在与 a 一起使用时不起作用before_action
:
def update_resolution
@ticket = Ticket.find(params[:id])
@ticket_res = @ticket.resolution
@ticket_res.update_attribute(params[:resolution])
end
上面创建了一个重定向循环。
解决这个问题的最佳方法是什么?任何和所有输入表示赞赏。