我的應用程序中有兩個不同的頁面,它們調用AJAX請求來添加新的phone_number(到key_contact
)。這些是公司頁面(key_contact belongs_to company
)和sales_opportunity頁面(,其中sales_opportunity has_many key_contacts通過sale_contacts)。這兩個頁面都有一個key_contacts
的表格,我希望在添加phone_number後重新加載。我想使用create.js.erb
文件僅重新加載應該在頁面上的表格(sales_opportunities上的表格與公司頁面上的表格不同)。因此,我需要測試發送AJAX請求的頁面的URL,然後相應地渲染一個部分。我已經嘗試了下面,但它不起作用。任何人都可以幫我解決原因嗎?如何測試哪個頁面在我的create.js.erb文件中發送了一個AJAX請求?
//update the key contact table with the new phone number, and close the modal
$('#phone_number_modal').modal('hide')
.clear_previous_errors();
resetForm($('#new_phone_number'));
$input = $('#phone_number_error');
$input.closest('.form-group').removeClass('has-error').find('.warning-block').html('');
//render the newly added key contact to the table if the AJAX call succeeded
<% if (URI(request.referer).path == '/companies') %>
$('#key-contacts-table-div').html("<%= escape_javascript(render :partial => 'shared/key_contacts_table')%>");
<% end %>
<% if (URI(request.referer).path == '/sales_opportunities') %>
$('#sale-contacts-table-div').html("<%= escape_javascript(render :partial => 'sale_contacts/table')%>");
<% end %>
$('.alert').remove();
$('#key-contacts').DataTable({
retrieve: true,
});
謝謝 - 但這個代碼屬於哪裏?它是否在Phone_Numbers控制器中? – Zoinks10
感謝您 - 我沒有使用確切的答案,因爲我不太確定如何。相反,我將一個變量放在create controller動作中,以確定請求來自哪條路徑,然後測試該變量以確定我需要呈現哪些create.js.erb文件。完美的作品。 – Zoinks10