Не удается получить доступ к данным внутри функции jjery Ajax после рендеринга частичного в Rails - PullRequest
0 голосов
/ 04 июня 2019

Проблема в том, что я не могу получить доступ к данным, извлеченным в Ajax, мне нужно получить доступ к данным по data.responseJSONfrom.follow, и я хотел бы сделать это по data.follow

def create
 follow = current_user.user_followings.new(following_id:params[:following_id])
 status = follow.save
 render json: {follow: status ? render_to_string(partial: 'users/follow', locals:{follow: follow, id_to_follow: follow.following_id }) : ''},
             status: status ? :ok : :unprocessable_entity
  end
$('#unfollow').bind('ajax:complete', function(xhr, data){
      $(this).replaceWith(data.follow);
 });

data.follow - это неразрешенная переменная

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете начать с отладки вашего data объекта в консоли: console.log('data: ', data); должен возвращать данные, которые вам нужны. Если нет, то что-то не так с ответом или методом.

Просто опубликуйте это как ответ на случай, если у кого-то еще возникнет подобная проблема. Проблема в том, что вам нужно изменить функцию прослушивания AJAX с .bind() на .on().

Итак, в вашем случае:

$('#unfollow').on('ajax:complete', function(xhr, data){
  $(this).replaceWith(data.follow);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...