我想在包含嵌套属性的表单上打印包含信息的收据,我决定使用 prawn
我的控制器如下所示:
def show
visit = Household.find(params[:id])
respond_to do |format|
format.html
format.pdf do
pdf = VisitPdf.new(visit)
send_data pdf.render, filename: "visit_#{visit.id}.pdf",
type: "application/pdf",
disposition: "inline"
end
end
end
它有效,我使用此按钮(在 haml 中)获取 pdf
= link_to 'Print Order', household_path(household, format: "pdf"), class: 'btn btn-inverse btn-info'
我的收据适用于一个有嵌套属性的家庭,该属性由具有多个字段的访问组成,我希望将访问中的字段打印在 pdf 上
对于我的家庭,以下工作直到我处理访问:
class VisitPdf < Prawn::Document
def initialize(household)
super()
@household = household
@visit = household.visit
# visit_id
visit_date
household_name
house_count
starch
special
end
def household_name
move_down 10
text "Household: #{@household.name}"
end
def house_count
text "Neighbors: #{@household.neighbors.count}"
end
def visit_date
text "Date: #{@visit.visited_on.strftime('%B %d, %Y')}"
end
@visit = home.visit 不起作用。使用 pdf,我正在渲染我的视图中的内容,因此我应该可以使用实例变量(注意我使用的是体面的曝光,这就是为什么我有 @household = 家庭)
访问字段通过 cocoon 插入如下:
= link_to_add_association( 'New Visit', f, :visits , class: 'btn btn-success btn-large', :render_options => {wrapper: 'bootstrap' },:force_non_association_create => true)
使用输入:
= f.input :visited_on, label: 'Date of Visit', default: Date.today, order: [:month, :day],input_html: { class: 'span2' }
如何访问我的 Visit 实例变量?