Difference between respond_to/format and params[:format]

Updated . Posted . Visible to the public. Repeats.

To return non-HTML responses (like XLS spreadsheets), we usually use the

respond_to do |format|
  format.xls do
    # send spreadsheet
  end
end

This is often, but not always the same as checking for params[:format] == :xls, so don't rely on this when e.g. one format checks for authorization and the other doesn't.

params[:format] is only set when a user explicitly puts a .xls at the end of the URL.

The format.xls block also responds when the user's browser requests the application/excel MIME type.

If Internet Explorer runs on a machine with Excel installed on it, this is done automatically.

Thomas Eisenbarth
Last edit
Michael Leimstädtner
License
Source code in this card is licensed under the MIT License.
Posted by Thomas Eisenbarth to makandra dev (2010-09-08 13:39)