My skeletal renderer looks like this
ActionController.add_renderer :pdf do |template, options|
html = render_to_string(template, options)
...
end
The trouble here is that render_to_string looks for a template for MIME
type PDF, e.g. show.pdf.erb. Unfortunately, that's not what I want. I
need to get HTML. I haven't found a straightforward option to achieve
this.
html = render_to_string(options.merge(
:template => "#{template}.html")
That's not pretty, but gets me halfway there. However, when I call
render :pdf => 'show', :layout => 'print'
the layout is passed through to render_to_string, but ignored. If I
rename layouts/print.html.erb to layouts/print.pdf.erb, it works as long
as all partials used by that layout are available in pdf variants, too.
Now, I see that this behavior might be useful most of the time, but this
time it is exactly not what I want. Is there a *clean* way to make
render_to_string do what I want?
Michael
--
Michael Schuerig
mailto:michael@schuerig.de
http://www.schuerig.de/michael/
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
No comments:
Post a Comment