Best way to force a respond_to format

I am playing around with the idea of adding to the HTTP_ACCEPT header
method and trying to utilize WURFL for detecting mobile devices by
USER_AGENT instead. I’m thinking I will set up some kind of
before_filter in my controller, to intercept all requests and compare
the USER_AGENT to some data source.

If I detect that the USER_AGENT is a mobile device, then I’d like to
force a particular mime-type and format. If I can’t find it, then I
may just fall through to the typical ACCEPT header.

I’m wondering what others thoughts are on the best way to do this.

I have found that I can simply set the params[:format] to what I want.

such as:

before_filter :typecheck
def typecheck
params[:format] = “xhtmlmp”
params[:format] = “wml”

Then in my view, I will have a respond_to block something like.

respond_to do |format|
format.xml { :render :xml => @object.to_xml }
format.xhtmlmp { render :template => ‘object/xhtmlmp-index’,
:layout => ‘xhtmlmp’ }
format.wml { render :template => ‘object/wml-index’,
:layout => ‘wml’ }

I see I could also just set the request.env[“HTTP_ACCEPT”] parameter to
the appropriate mime-type that will give me the correct format as well.

Anyone have any suggestions? Do you think this idea makes any sense?

Thanks for any tips or hints.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs