如何在后台创建 wicked_pdf 文档
How to create a wicked_pdf document in background
我想使用 wicked_pdf 创建一个 pdf 文档。但是,所有教程都使用 'show' 方法进行。我想在 saving/creating 个项目后立即这样做。这是我的创建方法。
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
render 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,
right: 35 }
end
end
end
我可以通过 http://localhost:3000/genbcode/1.pdf 生成 pdf
如何在 create_item 方法后调用 gen_barcode 生成 pdf?
有几种方法可以做到这一点。首先,您可以在成功保存项目后重定向到 show
方法。该方法将如下所示:
def create
@item = Item.new(item_params)
if @item.save
redirect_to item_path(@item, format: :pdf)
else
render "new"
end
end
这将重定向到 ItemController
的 show
方法,在那里您可以像在 gen_barcode
方法中那样渲染 pdf。这是一种更可取的方式,因为每个方法都有自己的业务。方法create
响应创建对象,方法show
显示结果
其次,您可以将 respond_to
添加到您的创建方法中。
def create
respond_to do |format|
format.pdf do
render pdf: "item_#{code}",
template: 'layouts/gen_barcode.pdf.erb'
end
end
end
并且您需要在表单中设置正确的格式
<%= form_for(@item, format: :pdf) do |form| %>
...
<%= form.submit "Submit" %>
<% end %>
我想使用 wicked_pdf 创建一个 pdf 文档。但是,所有教程都使用 'show' 方法进行。我想在 saving/creating 个项目后立即这样做。这是我的创建方法。
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
render 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,
right: 35 }
end
end
end
我可以通过 http://localhost:3000/genbcode/1.pdf 生成 pdf 如何在 create_item 方法后调用 gen_barcode 生成 pdf?
有几种方法可以做到这一点。首先,您可以在成功保存项目后重定向到 show
方法。该方法将如下所示:
def create
@item = Item.new(item_params)
if @item.save
redirect_to item_path(@item, format: :pdf)
else
render "new"
end
end
这将重定向到 ItemController
的 show
方法,在那里您可以像在 gen_barcode
方法中那样渲染 pdf。这是一种更可取的方式,因为每个方法都有自己的业务。方法create
响应创建对象,方法show
显示结果
其次,您可以将 respond_to
添加到您的创建方法中。
def create
respond_to do |format|
format.pdf do
render pdf: "item_#{code}",
template: 'layouts/gen_barcode.pdf.erb'
end
end
end
并且您需要在表单中设置正确的格式
<%= form_for(@item, format: :pdf) do |form| %>
...
<%= form.submit "Submit" %>
<% end %>