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