0

ネストされた属性を含むフォームの情報を含むレシートを印刷したいので、エビを使用することにしました

私のコントローラーは次のようになります。

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

それは機能し、このボタンを使用してpdfを取得します(hamlで)

 = link_to 'Print Order', household_path(household, format: "pdf"), class: 'btn btn-inverse btn-info'

私の領収書は、複数のフィールドを持つ訪問で構成されるnested_attributeを持つ世帯用であり、訪問のフィールドを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 = house.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 インスタンス変数にアクセスするにはどうすればよいですか?

4

0 に答える 0