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:
You 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