ajax: success e ajax: callback completo não funciona ao usar o UJS no Rails

Eu tenho um link que quando eu clico em ele irá disparar uma chamada ajax então substitua esse link por outro link, diz por exemplo o link original é "add friend", quando clico neste link ele irá enviar um pedido ajax para add_friend action então se o amigo for adicionado o link acima será substituído por outro link "cancelar pedido", eu uso ujs para isso:

$("#link_for_friend").html("<%= escape_javascript(render('users/cancel_link')) %>")

Quando eu tento adicionar callback (: sucesso e: completo) não funciona, eu tentei com: beforeSend como o seguinte funciona:

$(document).ready ->
  $("#my_link").on "ajax:beforeSend", ->
    alert("hello")

existe uma solução para o sucesso e callback completo?

nota: minha idéia é mostrar um loader.gif quando ajaxStart é acionado e depois escondê-lo quando ajax: callback completo é acionado pelo menos, também se houver algum erro que eu quero mostrar quando ajax: erro é acionado

Atualizar

Eu tentei resolver isso movendo o código dentro de action.js.erb para o arquivo js assim:

  $(document).ready ->
  $(document).on("ajax:success", "a.invitation-box", ->
    $("#link_for_friend").html("<%= escape_javascript(render('users/cancel_link')) %>")
  ).on "ajax:error", "a.invitation-box", ->
    alert "error"

mas desta forma não é possível colocar render ('users / cancel_link') dentro de um arquivo JS