ruby on rails - Métodos de detección del navegador Rails
ruby-on-rails user-agent (3)
Hola a todos, me preguntaba qué métodos son estándar en la industria para hacer la detección del navegador en Rails. ¿Hay alguna gema, biblioteca o código de muestra en algún lugar 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 existe un método aceptado para hacer esto.
Sé que podemos obtener el agente de usuario y analizar esa cadena, pero no estoy seguro de que esa sea 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 pido es lo que ustedes han hecho.
[ACTUALIZAR]
Así que gracias a faunzy en GitHub, he entendido un poco cómo verificar al agente de usuario en Rails, pero todavía no estoy seguro de si esta es la mejor manera de hacerlo en Rails 3. Pero aquí es lo que he conseguido lejos:
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
Hay una biblioteca de Ruby en GitHub: https://github.com/gshutler/useragent
Lo uso yo mismo, y está funcionando como lo anuncian hasta ahora. Para su caso de uso, probablemente podría llamar a la biblioteca desde un método auxiliar en su proyecto Rails o algo similar.
Dicho esto, no estoy completamente seguro de si HTTP_USER_AGENT
está expuesto a los métodos de ayuda de Rails. En caso de que no esté expuesto, siempre puede exponer un método de controlador como un ayudante (utilizando AbstractController::Helpers::ClassMethods#helper_method
).
Intente request.env[''HTTP_USER_AGENT'']
, esto devolverá el agente de usuario de su cliente. También hay un ayudante rápido publicado por Hubert Łępicki
La gema del browser está diseñada específicamente para la detección del navegador en Rails.