我有一个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")
});
并且它只用纯文本完全正常工作,但我需要将文本作为嵌入式ruby。这可能吗?
答案 0 :(得分:1)
它只用纯文本完全正常,但我需要将文本作为嵌入式ruby。这可能吗?
您必须为您的操作创建.js
个文件,您还可以使用路径更改链接的html
e.g
创建accept_candidate.js.erb
并添加respond_to js格式,它将执行操作
# accept_candidate.js.erb
$("[id^='link_']").html("<%= escape_javascript(render('cancel_link')) %>")
# _cancel_link.html.erb
<%= link_to "Cancel", back_to_pending_path(vacancy_id: @vacancy.id, employee_id: e.id), method: :post, :remote => true%>