Он открывает новую вкладку, потому что это поведение по умолчанию - щелчок по ссылке с 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();
});
});