This plugin is now deprecated. If you would like to dispatch on the MIME type from within a Rails controller you should use the #respond_to method or the mobile_fu plugin.
What provides boolean query methods on Mime::Type instances for the native Rails mime-types. You now have these methods available from your controllers:
-
request.format.atom?
-
request.format.css?
-
request.format.csv?
-
request.format.html?
-
request.format.ics?
-
request.format.js?
-
request.format.json?
-
request.format.multipart_form?
-
request.format.rss?
-
request.format.text?
-
request.format.url_encoded_form?
-
request.format.xml?
-
request.format.yaml?
… and any custom mime types that you add in any environment specific config files.
# config/initializers/mime_types.rb Mime::Type.register 'text/iphone', :iphone # app/controllers/what_controller.rb class WhatController < ApplicationController before_filter :csv?, :iphone? def index render :text => 'index' end protected def csv? if request.format.csv? redirect_to login_url end end def iphone? if request.format.iphone? redirect_to login_url end end end
What is especially powerful in combination with When.
# app/controllers/what_controller.rb class WhatController < ApplicationController before_filter :login, :if => :csv? before_filter :login, :if => lambda { |controller| controller.request.format.iphone? } def index render :text => 'index' end protected def csv? request.format.csv? end def login redirect_to login_url end end
Copyright © 2008 Dan Croak, Jared Carroll, and thoughtbot, inc. released under the MIT license