【发布时间】:2019-02-18 19:56:59
【问题描述】:
我正在创建一个 API,它应该根据数据库上的一些信息生成 PDF。
当试图调用动作时,我得到一个错误:
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/v1/trips_controller.rb:56:in `print_monthly_trips'
这是我的控制器:
/#application_controller.rb
class ApplicationController < ActionController::API
include Response
include ExceptionHandler
include Pundit
include ActionController::MimeResponds
/#trips_controler.rb
def print_monthly_trips
@trips_to_print = current_user.trips_for_month(3)
respond_to do |format|
format.html
format.pdf do
render pdf: "file_name",
template: "trips/report.html.erb",
layout: 'pdf.html'
end
format.json do
render pdf: "file_name",
template: "trips/report.html.erb",
layout: 'pdf.html'
end
end
end
我的路线:
get 'print_monthly_trips', to: 'trips#print_monthly_trips'
我正在调用我的 API:
http GET https://localhost/print_monthly_trips Accept:'application/vnd.trips.v1+json' Authorization:'my_token'
那么,为什么我得到这个:
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/v1/trips_controller.rb:56:in `print_monthly_trips'
【问题讨论】:
-
第 56 行是哪一行?
-
respond_to do |format|
-
导轨版本?
Mime::Type注册的pdf数据类型?为什么要请求json并返回 PDF?根据文档,您的布局看起来不对 -
这只是一个测试。我的 Mime 类型是这样的: Mime::Type.register "application/pdf", :pdf
-
即使我只放这个:respond_to do |format| format.xml { render(xml: "fdsfds") } format.json { render(json: "fdsfdsfd" ) } end 它的破坏方式相同