jQuery .replacewith ruby​​代码

时间:2015-10-07 15:12:09

标签: jquery ruby-on-rails ruby

我有一个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。这可能吗?

1 个答案:

答案 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%>