通話を含むアプリケーションがあります。通話をキャンセルし、通話キャンセルの理由を提供できるようにしたいです。これまでのところ、コントローラーでキャンセルアクションが機能していますが、フィールドに「キャンセル」を投稿する前に、ドロップダウンに基づいてフィールドにcall_status
もデータを入力するように、それを拡張する方法を見つけようとしています。cancel_reason
これが私がこれまでに持っているものです:
ビュー コード: キャンセル ボタン
<%= link_to 'Cancel',
cancel_call_path(call),
confirm: 'Are you sure you want to cancel the call?',
:method => :post,
:class => 'btn btn-danger btn-mini' %>
コントローラ コード:アクションのキャンセル
def cancel
@call = Call.find(params[:id])
attrs = {
call_status: 'cancel',
incharge_id: @call.units.first.incharge_id,
attendant_id: @call.units.first.attendant_id
}
attrs.merge!({ incharge2_id: @call.units.second.incharge_id, attendant2_id: @call.units.second.attendant_id }) if @call.units.count == 2
if @call.update_attributes(attrs)
@call.units.each do |unit|
CallMailer.cancel_call(unit.incharge, @call).deliver
CallMailer.cancel_call(unit.attendant, @call).deliver
end
redirect_to calls_url, :notice => "Call was successfully cancelled"
else
redirect_to calls_url, :error => "Whoops."
end
end
キャンセルの理由とともに表示される確認ポップアップ、または理由を含む小さなフォームで別のビューに関連付けられたキャンセル アクションのいずれかが必要です。