ajax: success и ajax: полный обратный вызов не работает при использовании UJS в Rails

У меня есть ссылка, которая, когда я нажимаю на нее, запускает вызов ajax, а затем заменяет эту ссылку другой ссылкой, например, говорит, что исходная ссылка «добавить друга», когда я нажимаю эту ссылку, она отправляет запрос ajax на действие add_friend. если добавлен друг, ссылка выше будет заменена другой ссылкой «отменить запрос», для этого я использую ujs:

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

Когда я пытаюсь добавить обратный вызов (: success и: complete), он не работает, я пробовал с: beforeSend, как показано ниже:

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

есть решение для успеха и полного обратного вызова?

примечание: моя идея - показать loader.gif при запуске ajaxStart, а затем скрыть его при срабатывании хотя бы ajax: complete callback, также если есть какая-то ошибка, я хочу показать ее при срабатывании ajax: error

Обновить

Я попытался решить эту проблему, переместив код из action.js.erb в файл js следующим образом:

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

но таким образом невозможно поместить render ('users / cancel_link') внутри файла JS

Ответы на вопрос(4)

Ваш ответ на вопрос