Mobu provides a Rails controller concern called DetectMobile. Mobu does server-side User Agent detection to categorize requests as mobile, tablet, or default. Mobu modifies your rails view paths based on the request type.
Add this line to your Gemfile:
Include the module in your ApplicationController:
class ApplicationController include Mobu::DetectMobile
Create directories for
mkdir app/views_mobile mkdir app/views_tablet
Put the view/partial files that you want to override in the appropriate directories.
When you receive a mobile request, your app will first look for view files in
directory, then in
Alternately, you can switch your rendering logic using the
tablet_request? helper methods
in your view files or helpers:
- if mobile_request? .small-thing Short Text - else .regular-thing Much Longer Text
To allow mobile users to switch to the full site view, add a link to a mobile view. For example:
= link_to("View Full Site", prefer_full_site_url)
To allow full site users to switch to the mobile view, add a link to a default view. For example:
- if mobile_browser? = link_to("View Mobile Site", prefer_mobile_site_url)
The view path modification technique was taken from this post by Scott W. Bradley.
The user agent regex came from a similar project, Brendan Lim's mobile-fu.