rakeタスクからpdfを作成する必要があります。したがって、モデル自体からpdfを生成します。私はwicket_pdfを使用して、ネットでPDFファイルの作成方法をたくさん検索しています。ブラウザでpdfが機能します(単純な部分は正しいです;-))。
私の環境:
- ルビー1.9.3
- レール3.2.6
- wicked_pdf 0.7.9 => actual_version
これが私のこれまでの解決策です:
# 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を認証するにはどうすればよいですか?