현재 사용자에게 링크 된 리드를 보여주는 테이블이 있습니다. 이 테이블에서 필자는 드롭 다운으로 가지고 싶은 "상태"필드를 가지고 있습니다. 이 드롭 다운에서 다른 상태를 선택하면 '저장'버튼을 클릭하지 않고 해당 상태의 상태를 즉시 저장합니다.레일즈 - 변수를 드롭 다운하고 저장하지 않고 속성을 업데이트하십시오.
누군가가이를 구현하는 데 도움을 줄 수 있습니까? 사전에
감사합니다, T
UPDATE : @lead을 인식하는 것 같지 수 있지만 나는 순간에이 스크립트를 사용하고 있습니다. 당신이 jquery``이 작업을 수행 할 수 있습니다
<table border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th class="col">Id</th>
<th class="col">Fullname</th>
<th class="col">Email</th>
<th class="col">Phone</th>
<th class="col">Status</th>
<th class="col">Created</th>
<th class="col"></th>
</tr>
</thead>
<tbody>
<% @leads.each do |lead| %>
<tr class="<%=cycle('odd', 'even') %> location_row" id="lead_row" data-id="<%= lead.id%>" data-status="<%= lead.status %>">
<td><%= lead.id %></td>
<td><%= lead.fullname %></td>
<td><%= lead.email %></td>
<td><%= lead.phone %></td>
<td><%= select_tag :status, options_for_select(Lead.statuses.map {|k, v| [k.humanize.capitalize, v]}), :class => "lead_status" %></td>
<td><%= link_to (fa_icon "pencil-square-o "), edit_lead_path({:id => lead.id, :first_last_name => lead.first_last_name}), :title => 'Edit Lead', :class => "action-button" %></td>
</tr>
<% end %>
</tbody>
</table>
<script>
$(function() {
$('.lead_status').on('change', saveStatus);
function saveStatus() {
var newStatus = $(this).val();
var table_row = $(this).closest('tr');
var currentStatus = table_row.attr('data-status');
var leadId = table_row.attr('data-id');
if (!(newStatus == "" && newStatus == currentStatus)) {
$.ajax({
type: "POST",
url: "<%= update_lead_status_path({:id => @lead.id}) %>"
data: {status: newStatus, lead_id: leadId},
success: function(data) {
table_row.attr('data-status', newStatus);
}
});
}
}
});
</script>
:
–