Ruby on rails Axlsx Rails gem无法正常工作,显示缺少的模板
我有一个这样的链接Ruby on rails Axlsx Rails gem无法正常工作,显示缺少的模板,ruby-on-rails,xlsx,axlsx,Ruby On Rails,Xlsx,Axlsx,我有一个这样的链接 <%= link_to "download file", import_horse_report_horses_path(format: 'xlsx') %> 对于此操作,我有此模板import\u horse\u report.xlsx.axlsx wb = xlsx_package.workbook wb.add_worksheet(name: "Horses") do |sheet| @horses.each do |horse| sheet.
<%= link_to "download file", import_horse_report_horses_path(format: 'xlsx') %>
对于此操作,我有此模板import\u horse\u report.xlsx.axlsx
wb = xlsx_package.workbook
wb.add_worksheet(name: "Horses") do |sheet|
@horses.each do |horse|
sheet.add_row [horse.breed, horse.date_of_birth, horse.gender]
end
end
我正在使用axlsx_rails gem并遵循其文档。但是我得到了这个错误
Missing template horses/import_horse_report, application/import_horse_report with {:locale=>[:en], :formats=>[:xlsx], :handlers=>[:erb, :builder, :coffee, :rabl]}
我如何解决这个问题?您可以通过更改
format.xlsx{ }
到
参考:
尝试显式呈现语句:
format.xlsx { render xlsx: 'import_horse_report' }
如果在调用/horses/import\u horse\u report
时不带尾随的.xlsx
,则渲染语句将不会执行,除非在路由文件中强制使用:xlsx
格式。如果要保留respond_to
块,请更改url。否则,您可以删除respond_to
块以获得一个简单的render:xlsx
语句(前提是您永远不会提供任何其他内容)。我使用
render xlsx: "import_horse_report"
而不是你的回应。这可能是一个选项,具体取决于您的情况。您在哪里保存了此
import\u horse\u report.xlsx.axlsx
模板?path?在同一个目录中,此控制器HOME/HORSECUNT/app/views/HORSSLOOKS的其他操作的视图是正确的,我想您必须将此format.xlsx{}
更正为format.xlsx
这也不起作用。有一种非常简单的可能性。您正在调用/horses/import\u horse\u report.xlsx
还是/horses/import\u horse\u report
?如果是后者,则在不使用路由
强制格式化的情况下,将无法找到模板。
format.xlsx { render xlsx: 'import_horse_report' }
render xlsx: "import_horse_report"