Как использовать gem wikedpdf rails с ajax - PullRequest
0 голосов
/ 19 июня 2020

Я использую wikedpdf gem в проекте rails, чтобы получать свои отчеты.

Но для одного отчета мне нужно использовать ajax запрос

$.ajax({
        type: "POST",
        url: url,
        dataType: 'pdf',
        data: { ids: getIdsJavascriptMethod() },
        success(data) { $("#load-app").hide(); return false; },
        error(data) { $("#load-app").hide(); return false; }
      });

Я вызываю ajax запросы с link_to

<%= link_to "PDF", "#", onclick: "pdf()", target: :_blank %>

Но выполняется рендеринг той же страницы "#" на целевом объекте _blank , как визуализировать PDF-файл с помощью гема wikedpdf с запросом ajax ?

1 Ответ

2 голосов
/ 19 июня 2020

Он открывает новую вкладку, потому что это поведение по умолчанию - щелчок по ссылке с target="_blank". Используйте e.preventDefault() первым делом в своей функции pdf(), чтобы предотвратить такое поведение.

function pdf(e) {
  e.preventDefault();

  // make Ajax request
}

И замените «#» на вызов js для link_to:

= link_to "PDF", "javascript:pdf()", target: :_blank

Или, что еще лучше, в IMO, добавьте идентификатор к событию ссылки:

<%= link_to "PDF", "#", id: "pdf-link", target: :_blank %>

И прослушайте щелчок (код предполагает, что у вас загружено jQuery):

$(document).ready(function() {
  $('#pdf-link').click(function(e) {
    e.preventDefault();
    pdf();
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...