2011-08-15 11 views
5

Mi configuración: Carriles 3.0.9, Ruby 1.9.2Rails 3 detectan petición procedente de clientes móviles

Mi aplicación necesita para servir un diseño vs. web móvil, dependiendo del origen de la solicitud. Necesito dar soporte a todos los clientes principales de dispositivos móviles como iPhone, Android, Blackberry, etc. ¿Cuál es la forma más sencilla de detectar esto en mi código?

Respuesta

8

La forma más sencilla de hacerlo es analizar request.user_agent por RegEx /Móvil | webOS/. versión variables móvil/completa se puede guardar en la sesión, y el ayudante será útil incluir CSS móvil:

#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 es una guía paso a paso para usted.

7

Devolverá el agente de usuario.

request.user_agent =~ /Mobile|Blackberry|Android/ # OR WHATEVER