Я использую драгоценный камень гем 'axlsx_rails' и хочу экспортировать данные в файл excel, но мне нужно отправить данные в контроллер через AJAX, например, флажки, установленные в js, или выбранные элементы. Проблема в том, что с ajax данные отправляются на контроллер, но файл xlsx не загружается, но с помощью функции rails Ссылка на работает хорошо.
Это моя функция в контроллер. Он отправляет переменную в файл xlsx, который отображает только атрибут название для Пользователь. Ничего особенного.
def export_xlsx_report_table
enterprise = current_user.enterprise
p "Params!!"
p params
@user = User.where(id: params[:user_id])
end
Это моя функция ajax. Я изменил URL-адрес, удалив последний .xlsx, и все равно не работает.
$.ajax({
type: "get",
url: "/export_xlsx_report_table.xlsx",
dataType: "json",
data: { user_id: 1 },
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name = "csrf-token"]').attr('content'))},
}).done(function(data){
});
Это html-файл. Когда я нажимаю, функция ссылка на работает хорошо, но нажатие на функцию js переходит к контроллеру, но ничего не происходит.
<%= link_to "Exportar reporte", export_xlsx_report_table_path(:user_id => 1, format: "xlsx"), class: 'btn btn-default btn-sm' %>
<a onclick = "report_sales.export_report()" class = "btn blue"> EXPORTAR REPORTE</a>
Спасибо за любую помощь, которую вы можете мне оказать.
🤔 А знаете ли вы, что...
Rails имеет встроенные средства для обработки исключений и ошибок, что упрощает отладку приложений.
Вы не можете загрузить файл на диск из JS: это проблема безопасности.
Взгляните на сообщение в блоге ниже для хорошего обходного пути - http://johnculviner.com/post/2012/03/22/Ajax-like-feature-rich-file-downloads-with-jQuery-File-Download.aspx