Rails データベースの値に従って行の色を変更しようとしています。また、行内にはドロップダウン メニューであるフォームがあります。ドロップダウンフォームで選択した値を変更すると、フォーム送信によって変更された値をDBに更新し、JavaScript関数を呼び出して、AJAXを介して新しい値を使用して行の色を変更します。
html.erb:
<%= f.select(:status, ["to call","didn't connect","confirmed","rejected"], {:selected => lead.status}, :onchange => %Q[$('#lead_form_#{lead.id}').submit();document.getElementById('lead_row_#{lead.id}').bgcolor=Application.getRowColour("#{lead.status}");]) %>
上記のコードでは、getRowColour に渡される #{lead.status} が常に同じ、つまり最初にページをロードしたときの status の初期値です。したがって、ドロップダウンを介してステータスを何度変更しても、getRowColour("") は変更されません。
ページのソース:
$('#lead_form_133').submit();document.getElementById('lead_row_133').bgcolor=Application.getRowColour("confirmed");
ご覧のとおり、 getRowColour() は定数値を取得しており、呼び出しごとに再評価していません。最新のステータス パラメータをこの関数に送信するにはどうすればよいですか?