Well, I got rails to render my inline SVG code in an rhtml file (parsed by ERb) in Firefox using the rest pattern. I thought all of this would work without the “after_filter” but for some reason, without it it doesn’t work. I have no idea why its needed! Can anyone explain?
Here’s how I got it to work…:
Environment.rb: Add the following: Mime::Type.register “application/xhtml+xml”, :svg
location_controller.rb (Or whatever your restful controller is!) def index @locations = Location.find(:all) respond_to do |format| format.html # index.rhtml format.xml { render :xml => @locations.to_xml } format.svg { render :action => " svg.rhtml", :layout => false } end end
also add:
after_filter :set_content_type def set_content_type if ( @request.env[‘HTTP_ACCEPT’].match(/application/xhtml+xml/)) @headers[‘Content-Type’] = “application/xhtml+xml; charset=utf-8” end end
Now create a file called svg.rhml in your views folder and paste the following:
SVG within XHTML DemoYou can embed SVG into XHTML, provided that your browser natively implements SVG. E.g. Firefox 1.5 supports most of static SVG.
The SVG part starts below
HELLO cher visiteur
The SVG part ended above
Voila! It works… Now why do I need the before filter!
Thanks
-RR