ajax: éxito y ajax: la devolución de llamada completa no funciona cuando se usa UJS en Rails

Tengo un enlace que cuando hago clic en él activará una llamada ajax y luego lo reemplazaré por otro enlace, dice, por ejemplo, que el enlace original es "agregar amigo". Cuando hago clic en este enlace, enviará una solicitud ajax a la acción add_friend. si se agrega el amigo, el enlace anterior será reemplazado por otro enlace "cancelar solicitud", uso ujs para eso:

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

cuando trato de agregar devolución de llamada (: éxito y: completo) no funciona, probé con: antesEnviar como sigue:

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

¿Hay una solución para el éxito y la devolución de llamada completa?

nota: mi idea es mostrar un loader.gif cuando ajaxStart se active y luego ocultarlo cuando ajax: complete la devolución de llamada se active al menos, también si hay algún error quiero mostrarlo cuando ajax: error se activa

Actualizar

Intenté resolver esto moviendo el código dentro del archivo action.js.erb a js como este:

  $(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"

pero de esta manera no es posible poner render ('users / cancel_link') dentro de un archivo JS

Respuestas a la pregunta(3)

Su respuesta a la pregunta