ruby-on-rails - ActionController::UnknownFormat rails 5 控制器
问题描述
编辑#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
我正在使用https://github.com/excid3/receipts gem,prawn
但我不确定为什么会出现错误。
解决方案
由于html
format 是 中的默认格式Rails
,因此您需要pdf
在 url 或链接构建器中明确提供格式:
localhost:3000/orders/1.pdf
否则,它会尝试将其加载为localhost:3000/orders/1.html
,但您尚未format.html
在控制器中定义处理程序。
在应用程序中实现链接时,请按照docs中的示例进行操作:
<%= link_to "Download Receipt", charge_path(@charge, format: :pdf) %>
推荐阅读
- python - 使用 Python 从一些数据创建栅格文件
- python-3.x - 训练预测模型时输入形状错误
- r - 使用 ggridges 在山脊线图中绘制正态分布
- javascript - 如何动态插入到mysql
- python - 如何从 PDF 的每一页中提取同一列上的一组数字?
- php - 如何查询提供类型和 id 的多态 Eloquent 模型?
- sqlalchemy - 与 Graphene-SQLAlchemy 接口类加节点接口的 ID 冲突
- php - Codeigniter 表单验证规则顺序
- php - 仅允许从 WooCommerce 中相同父类别的产品添加到购物车
- javascript - 使用 mocha 在类中测试函数中的变量