Hola a todos, me pregunto qué métodos son estándar dentro de la industria para hacer detección de navegadores en Rails. ¿Hay alguna gema, biblioteca o código de muestra en alguna parte que pueda ayudar a determinar el navegador y aplicar una clase o identificación al elemento del cuerpo del (X) HTML? Gracias, me pregunto qué usan todos y si hay un método aceptado para hacer esto.Rails Browser Detection Methods
Sé que podemos obtener user.agent y analizar esa cadena, pero no estoy seguro de si es una forma aceptable de detectar el navegador.
Además, no estoy tratando de debatir la detección de características aquí, he leído varias respuestas para eso en StackOverflow, todo lo que estoy pidiendo es lo que ustedes han hecho.
[ACTUALIZACIÓN]
Así que gracias a faunzy en GitHub, he especie de entender un poco acerca de la comprobación del agente de usuario en Rails, pero aún no está seguro si esta es la mejor manera de hacerlo en Rails 3. Pero aquí es lo que he conseguido hasta ahora:
def users_browser
user_agent = request.env['HTTP_USER_AGENT'].downcase
@users_browser ||= begin
if user_agent.index('msie') && !user_agent.index('opera') && !user_agent.index('webtv')
'ie'+user_agent[user_agent.index('msie')+5].chr
elsif user_agent.index('gecko/')
'gecko'
elsif user_agent.index('opera')
'opera'
elsif user_agent.index('konqueror')
'konqueror'
elsif user_agent.index('ipod')
'ipod'
elsif user_agent.index('ipad')
'ipad'
elsif user_agent.index('iphone')
'iphone'
elsif user_agent.index('chrome/')
'chrome'
elsif user_agent.index('applewebkit/')
'safari'
elsif user_agent.index('googlebot/')
'googlebot'
elsif user_agent.index('msnbot')
'msnbot'
elsif user_agent.index('yahoo! slurp')
'yahoobot'
#Everything thinks it's mozilla, so this goes last
elsif user_agent.index('mozilla/')
'gecko'
else
'unknown'
end
end
return @users_browser
end
Gracias por la referencia, he usado esa biblioteca para crear la mía. – alvincrespo
Tengo curiosidad ... ¿qué agregaron en su versión de la biblioteca? ¿El código fuente está disponible en alguna parte? –
El enlace está muerto. : x –