Kevin Marsh

Creating Mobile or Lite Versions of Rails Apps

For my latest web project using Ruby on Rails, the idea of a mobile version arose.

Is it worth it? Well, how much more code would I have to write? 1,000 lines? Pages? Try 10. That’s right: 10.

Here’s the magic, first add the lines around the Mobile/lite version bit to config/routes.rb:

ActionController::Routing::Routes.draw do |map| # Default page is the dashboard map.connect '', :controller => "dashboard", :action => 'show' # Mobile/lite version map.connect ':mobile/', :controller => "dashboard", :action => 'show' map.connect ':mobile/:controller/:action/:id' # Install the default route as the lowest priority. map.connect ':controller/:action/:id' end

Then edit app/controllers/application.rb:

require_dependency "login_system" class ApplicationController < ActionController::Base include LoginSystem helper :debug helper :date_picker layout :determine_layout private def determine_layout if @params[:mobile] "mobile" else "application" end end end

And finally, create app/views/layouts/mobile.rhtml

<%= yield %>

Surf on over to yourserver/yourapp/mobile/ And voila! You have a lite version of your site perfect for viewing on a smartphone or PDA. As a bonus, when you start using a mobile page, your preference will “stick” and follow you, thanks to Rail’s routing.

Others' Comments

Your Comments

Your name:

Your email:

Your blog:

Your comment: