我有Ruby代碼調用一個方法接受一個候選人這樣一個空缺:jQuery的.replacewith Ruby代碼
<%= link_to "Accept", accept_candidate_path(vacancy_id: @vacancy.id, employee_id: e.id), method: :post, :remote => true, :id => "link_#{i}" %>
該方法改變在數據庫中接受的狀態。
一旦被點擊,我希望替換與以下Ruby代碼:
<%= link_to "Cancel", back_to_pending_path(vacancy_id: @vacancy.id, employee_id: e.id), method: :post, :remote => true%>
我也有一個的if/else,檢查候選人的狀態來顯示或者鏈接。但是,這只是通過刷新頁面觸發的,我只是希望它能夠接受它,在不完全刷新頁面的情況下更改按鈕。
目前我有這樣的:
$("[id^='link_']").click(function (event) {
$(this).replaceWith("Accepted")
});
和它的作品只用純文本完全地很好,但我需要的文本是嵌入寶石。這可能嗎?
這裏有很多選項。 1)顯示/隱藏這兩個鏈接,只需切換它們。即:表示接受;當點擊接受時,隱藏接受並顯示取消。 2)添加一個'accept.js.erb'文件並在這裏添加javascript。 「Unobtrusive javascript」 - http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html#server-side-concerns 3.通過AJAX在JavaScript文件中處理鏈接,並通過新鏈接返回一個部分(通過控制器)。 這將需要一些時間來輸入所有這些與例子,但我會如果你想。 –
在元素上使用數據屬性並讀取該值 – charlietfl
是的,我應該在我的列表中包含@charlietfl。爲了添加數據屬性,您甚至可以將控制器方法分組爲一個,並根據當前狀態接受/取消,因此您不必更改很多客戶端。 –