编辑#1
查看订单/展示,我还没有添加发票,但是该视图可以使用或不使用发票链接,对吗?
<section class="pt-4 px-8 animated">
<section class="flex flex-wrap justify-between">
<h3 class="font-normal text-grey-dark mb-4 py-2">Order Information</h3>
<%= render 'layouts/dashboard/account' %>
</section>
<h2 class="text-grey-darkest text-lg no-underline py-4">
Course: <%= @order.course.title %>
</h2>
<section class="py-2">
<p class="text-grey-darkest text-md pb-4"><%= @order.course.description %></p>
<p class="text-grey-darkest text-md">
<b>Course Price:</b>
£<%= @order.course.price %>
</p>
<p class="text-grey-darkest text-md">
<b>Total Price:</b>
£<%= @order.amount %>
</p>
</section>
<section class="text-grey-darkest pt-4">
<h4 class="pb-2">User details</h4>
<p>Name: <%= current_user.full_name %></p>
<p>Email: <%= current_user.email %></p>
</section>
</section>
原始问题
我的控制器出现ActionController::UnknownFormat
错误
class OrdersController < ApplicationController
layout proc { user_signed_in? ? "dashboard" : "application" }
before_action :authenticate_user!
def index
@orders = Order.includes(:course).all
end
def show
@order = Order.find(params[:id])
respond_to do |format|
format.pdf {
send_data @order.receipt.render,
filename: "#{@order.created_at.strftime("%Y-%m-%d")}-aurameir-courses-receipt.pdf",
type: "application/pdf",
disposition: :inline
}
end
end
def create
end
def destroy
end
end
我正在使用prawn
的{{3}}宝石,但是不确定为什么会出现错误。
答案 0 :(得分:0)
由于html
格式是Rails
的默认格式,因此您需要在URL或链接生成器中显式提供pdf
格式:
localhost:3000/orders/1.pdf
否则,它将尝试将其加载为localhost:3000/orders/1.html
,但是您尚未在控制器中定义format.html
处理程序。
在应用程序中实现链接时,请遵循docs中的示例:
<%= link_to "Download Receipt", charge_path(@charge, format: :pdf) %>