我需要从 rake 任务创建一个 pdf。因此我从模型本身生成pdf。我使用 wicket_pdf 并在网上搜索了很多,如何创建 pdf 文件。在浏览器中 pdf 作品(简单的部分正确;-))。
我的环境:
- 红宝石 1.9.3
- 导轨 3.2.6
- wicked_pdf 0.7.9 => 实际版本
到目前为止,这是我的解决方案:
# app/controllers/bills_controller.rb
class BillsController < ApplicationController
before_filter :authenticate_admin_user!
respond_to :html, :pdf
def show
@bill = Bill.find(params[:id])
respond_with(@bill) do |format|
format.html
format.pdf { render :pdf => "mypdf", :disposition => "inline" }
end
end
end
# app/models/bill.rb
# solution from https://github.com/mileszs/wicked_pdf/issues/84
class Bill < ActiveRecord::Base
require 'open-uri'
def save_pdf
pdf = open("http://localhost:3000/bills/#{id}.pdf")
File.open(Rails.root.join("pdfs","#{id}.pdf"), 'wb') { |f| f.print(pdf.read) }
end
end
从控制台:
Bill.first.save_pdf
但我得到了错误:
OpenURI::HTTPError: 401 Unauthorized
我如何通过 rake 任务中的 open-uri 对 devise_user 进行身份验证?