Encapsulates the notion of a mime type. Can be used at render time, for example, with:

class PostsController < ActionController::Base
  def show
    @post = Post.find(params[:id])

    respond_to do |format|
      format.html
      format.ics { render text: @post.to_ics, mime_type: Mime::Type["text/calendar"]  }
      format.xml { render xml: @post }
    end
  end
end

Constants

PARAMETER_SEPARATOR_REGEXP = /;\s*\w+="?\w+"?/

TRAILING_STAR_REGEXP = /(text|application)\/\*/

Attributes

[R] synonyms
[R] string
[R] hash
[R] symbol
Show files where this class is defined (1 file)
Register or log in to add new notes.
March 11, 2009 - (>= v2.1.0)
2 thanks

Can also be used to conditionally apply filters

For example:

# Skip login filter if the request is for CSS
before_filter :require_login, :unless => lambda { |controller| controller.request.format.css? }

Calling request.format on the controller returns a Mime::Type object, which can then be queried for mime types, other examples:

controller.request.format.html?
controller.request.format.json?
November 3, 2009
0 thanks

Setting a custom Content type

The given example seems to be broken. The :mime_type option as well as the [] access on the Mime::Type class are both not working.

The following code allows the custom setting of content types as intended by the original example:

class  PostsController < ActionController::Base
  def show
     @post = Post.find(params[:id])

    respond_to do |format|
      format.html
      format.ics { render :text => post.to_ics, :content_type => Mime::Type.lookup("text/calendar")  }
      format.xml { render :xml => @people.to_xml }
    end
  end
end