我想用wicked_pdf來創建一個pdf檔案。但是,所有的教程都是用 "顯示 "的方法來做。我想在保存/創建一個專案后馬上這樣做。下面是我的創建方法。
def create_item
item = Item.new
bcode = params[:bcode]
item.variant_id = params[:variantid]
item.brand_id = params[:brandid]
item.luitem_id = params[: itemid]
item.createdate = Date.today
item.user_id = session[:user_id]
ditem.save
編碼(gen_barcode
end`。
下面是我想生成pdf的方法
def gen_barcode
code = Bcode.maximum(:id)
respond_to do |format|
format.html
format.pdf do
渲染pdf: "item_#{code}" 。
template: 'layouts/gen_barcode.pdf.erb'。
show_as_html: params[:debug].present?
outline: { outline: true,
outline_depth: 50 }。
margin: { top: 35,
bottom: 35,
left: 35,
右邊: 35 }
end end
end
end end
我能夠通過做http://localhost:3000/genbcode/1.pdf來生成pdf。 我怎樣才能通過在create_item方法后呼叫gen_barcode來生成pdf?
uj5u.com熱心網友回復:
有幾種方法可以做到這一點。首先,你可以在成功保存你的專案后重定向到show方法。該方法將看起來像這樣:
def create
@item = Item.new(item_params)
if @item.save
redirect_to item_path(@item, format: :pdf)
else
呈現"new"。
end
end
這將重定向到ItemController的show方法,在那里你可以像在gen_barcode方法中那樣渲染pdf。這是一種更可取的方式,因為每個方法都做自己的事情。方法create回應創建一個物件,而方法show則顯示結果。
其次,你可以在創建方法中加入respond_to。
def create
respond_to do |format|
format.pdf do
渲染pdf: "item_#{code}" 。
template: 'layouts/gen_barcode.pdf.erb'.
結束
end
end end
而且你需要在表格中設定正確的格式
<%= form_for(@item, format::pdf) do |form| %>
...
<%= form.submit "submit" %>
<% end %>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/307616.html
標籤:
