これは発券システム用です。
チケットをクローズすると、 の列が表示され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
が、あまり成功していません。このメソッドは、次のように使用すると機能しませんbefore_action
。
def update_resolution
@ticket = Ticket.find(params[:id])
@ticket_res = @ticket.resolution
@ticket_res.update_attribute(params[:resolution])
end
上記はリダイレクトループを作成します。
これについて最善の方法は何ですか?あらゆるご意見をお待ちしております。