Я использую rails 4.2, и использую самоцветы axlsx и axlsx_rails
Я собираюсь перейти на рельсы 5 в ближайшее время, но сейчас я использую эту версию.
Что я хочу: Экспортировать файл xlsx из запроса, используя axls_rails gem
Что я получаю вместо этого: вместо этого экспортируется весь HTML-файл в виде данных, см. Рисунок:
![enter image description here](https://i.stack.imgur.com/Z6Uq8.png)
Я следовал трем различным руководствам в качестве документации git и уже несколько раз отлаживал ее, но не нашел проблемы. Надеюсь, что кто-то здесь может помочь мне понять, что вызвало это.
Gemfile:
HTML-файл:
= link_to "<i class='icon icon-file-down'></i> Export</a></li>".html_safe, server_report_system_reports_path(format: :xlsx)
файл контроллера:
def server_report
organization_id = params[:organization_id]
@accounts = Admin::Account.where("organization_id = ?", organization_id) unless organization_id.blank?
@accounts_paginated = @accounts.paginate(per_page: 10, page: params[:page] || 1 )
respond_to do |format|
format.html
format.xlsx {
response.headers['Content-Disposition'] = 'attachment; filename="server_report.xlsx"'
}
end
end
xlsx.axlsx file:
wb = xlsx_package.workbook
wb.add_worksheet(name: "Accounts") do |sheet|
sheet.add_row ["Account id", "Member id", "Member name", "Member email"]
@accounts_paginated.each do |account|
account.members.each do |member|
sheet.add_row [account.id, member.id, member.name, member.email]
end
end
end
EDIT:
Я попытался вызвать другой def с именем export и попытаться выяснить, есть ли проблема с response_to и использовать другой запрос, но он также сделал то же самое
Я также пытался записать в format.xlsx эту строку, но ничего не изменилось:
РЕДАКТИРОВАТЬ 2:
Я попытался отрисовать в response_to файл вместо этого в файле axlsx.xlsx в формате .xlsx, но я получил тот же результат
response.headers ['Content-Disposition'] = 'attachment; имя файла = "server_report.xlsx" '