Notes posted by subblue
RSS feed
Cross browser issues
We use jQuery as our Javascript library of choice, but have to use a work around for full cross-browser support.
In jQuery you need to set the AJAX request headers as:
$.ajaxSetup({
beforeSend: function(xhr) {xhr.setRequestHeader(“Accept”, “text/javascript”);}
});
But we found that IE and Safari sends headers like: HTTP_ACCEPT=>“text/html, /, text/javascript”, with the javascript header last so this mucks up the respond_to block as it will always enter the first block (usually format.html) and never reach your format.js block.
We have a before filter called on required actions that forces the request format to be javascript if it is an xml_http_request?
def fix_xml_http_request if request.xml_http_request? request.format = :js end end

Handy for adding theme support
I’m using this to add basic theme support to my app:
append_view_path(File.join(RAILS_ROOT, "app/themes/#{@current_theme}")) append_view_path(File.join(RAILS_ROOT, 'app/themes/_base'))
Common templates go in app/themes/_base and then you can override these with specific theme versions in each theme directory.