My setup: Rails 3.0.9, Ruby 1.9.2
My app needs to serve up a mobile vs. web layout depending on the request\'s origin. I need to support all the major mobile client
It will return User Agent.
request.user_agent =~ /Mobile|Blackberry|Android/ # OR WHATEVER
The easiest way to do it is parse request.user_agent by RegEx /Mobile|webOS/. Mobile/Full version variable can be saved into session, and helper will be useful to include mobile CSS:
#controller
def mobile_device?
if session[:mobile_param]
session[:mobile_param] == "1"
else
request.user_agent =~ /Mobile|webOS/
end
end
helper_method :mobile_device?
#layout
<%= stylesheet_link_tag 'mobile' if mobile_device? %>
Railscasts 199 is a step-by-step guide for you.