PDF-Caching

Hallo,

im Zuge der Umstellung von Rails 2.0.2 auf 2.1.0 bin ich auf eine
Schwierigkeit
beim Caching von generierten PDF-Dateien gestoßen.

Für das Generieren von PDFs verwende ich RTeX. Damit ich die PDF nicht
bei jedem
Abruf neu generieren muß, wird sie gecacht.

Den Code habe ich unten angefügt: die Methode cache_pdf wird als
after_filter
auf die Methode publish ausgeführt und schreibt response.body in eine
Datei.

Das hat in der Rails-Version 2.0.2 gut funktioniert. In der neuen
Rails-Version
2.1.0 wird jedoch die Datei nicht mehr der Inhalt der PDF geschrieben.
In der
geschriebenen Datei steht anstatt der PDF-Daten nun diese Zeile:

#Proc:0x0178d970@/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/streaming.rb:81

Hat jemand eine Idee, was die Ursache sein könnte?

Viele Grüße

Michael K.


class PublicMagazinesController < PublicController

layout nil

self.append_view_path File.join(RAILS_ROOT, Properties.views_dir)

after_filter :cache_pdf, :only => :publish

DIR_URL = ‘/cache/magazines/’
DIR_PATH = File.join(’/public/’, DIR_URL)

def publish
@magazine = Magazine.find(params[:id])
@file_path = File.join(RAILS_ROOT, DIR_PATH, @magazine.file_name)
if File.exist? @file_path
redirect_to File.join(DIR_URL, @magazine.file_name)
else
@do_cache = true
render :template => @magazine.template,
:filename => @magazine.file_name,
:preprocess => true
end
end

private
def cache_pdf
if @do_cache
FileUtils.makedirs(File.dirname(@file_path))
File.open(path, “wb+”) { |f| f.write(response.body) }
end
end

end