ruby-on-rails - Rails ActionController 未知格式

标签 ruby-on-rails ruby actioncontroller axlsx

我正在尝试渲染一个 xlsx 文件。但我不断收到 406/UnknowFormat。我已经完成了正确的设置,也许我遗漏了什么?

Rails 4.2 应用

gem 'axlsx'
gem "axlsx_rails"
gem 'zip-zip'

配置/初始化程序/mime

Mime::Type.register "应用程序/xlsx", :xlsx

Controller

respond_to do |format|
      format.xlsx { render xlsx: "create", template: "api/reports/create" }
end

views/api/reports/create.xlsx.axlsx

wb = xlsx_package.workbook
wb.add_worksheet(name: "Reports") do |sheet|
  sheet.add_row [@report_name]
end

最佳答案

对我来说,在 Rails 4.2 中,我必须指定完整的模板文件名,包括扩展名。根据axlsx_rails docs Rails 4.2 中的语法有所不同。这是对我有用的:

some_controller.rb

def create_report
  render "template_path/report.xlsx.axlsx"
end

template_path/report.xlsx.axlsx

wb = xlsx_package.workbook
wb.add_worksheet(:name => "Basic Worksheet") do |sheet|
  sheet.add_row ["First Column", "Second", "Third"]
end

关于ruby-on-rails - Rails ActionController 未知格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33414746/

相关文章:

ruby-on-rails - 如何在 Rails (Devise gem) 中检查当前密码?

ruby-on-rails - 如何从模型的类方法访问 UrlWriter url/路径生成器?

ruby-on-rails - Rails 应用程序可以处理多少并发上传

javascript - 如何在 Rails 中执行 AJAX-y 条件显示/隐藏表单字段?

ruby-on-rails - Heroku 上的延迟作业在应用推送时被锁定

ruby-on-rails - Rails paperclip amazon aws s3 gem,如何更改图片网址?

ruby-on-rails - 如何重新加载安装到 Rails 应用程序中的 sinatra 模块化应用程序?

mysql - 多个经纬度点的半径

javascript - 动态下拉菜单将 javascript 放在哪里?

ruby-on-rails - 从路由错误 rails 中拯救 3.1