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 somelogic... params[:format] = "xhtmlmp" or... params[:format] = "wml" end
Then in my view, I will have a respond_to block something like.
respond_to do |format| format.html 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' } end
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.