0

Rails アプリを使用していますが、動的に生成されたデータへのダウンロード リンクを作成しようとすると、問題が発生します。モデルに.to_pdfメソッドを配置しました。Folhaそしてコントローラー上folhas_controller.rb

def show
    nome = "#{@folha.nome_do_mes}-#{@folha.ano}-#{DateTime.now.to_i}"
    @folha = Folha.find(params[:id])
    respond_to do |format|
      format.pdf do
        pdf = @folha.to_pdf(view_context)
        send_data pdf.render, filename: "#{nome}.pdf", type: "application/pdf"
      end
    end
  end

問題は.to_pdf、リンクを初めてクリックしたときにのみメソッドが実行されることです。他のすべてのクリックでは、オブジェクトが更新されたかどうかに関係なく、同じファイルが表示されます。スタックのどこでこれが発生しているのかわかりません。本番環境でのみ発生します。HerokuにデプロイされたThin 1.4.1でRails 3.2.6を使用しています。助けてください=)

4

1 に答える 1

0

私は回避策を使用しましたが、それが適切な方法ではないことは確かです。 routes.rb

  resources :folhas do
    resources :servicos
  end

  match 'exportar/:id/:dummy' => 'folhas#show', as: "exportar"

そして、ビューで:

<%= link_to image_tag('pdf_small.png'), exportar_path(id: folha.id, dummy: DateTime.now.to_i, format: 'pdf'), class: 'item' %>

そうすれば、ビューがレンダリングされるたびに異なるリンクが配置されます。

于 2012-08-07T01:35:56.783 に答える