Metodi di rilevamento del browser delle rotaie

Ciao a tutti, mi chiedevo quali metodi sono standard nel settore per eseguire il rilevamento dei browser in Rails? C’è una gem, una libreria o un codice di esempio da qualche parte che può aiutare a determinare il browser e applicare una class o un id all’elemento body dell’X (HTML)? Grazie, mi chiedo solo cosa usano tutti e se esiste un metodo accettato per farlo?

So che possiamo ottenere user.agent e analizzare quella stringa, ma non sono sicuro che sia un modo accettabile per fare il rilevamento del browser.

Inoltre, non sto cercando di discutere la funzione di rilevamento qui, ho letto più risposte per questo su StackOverflow, tutto quello che chiedo è quello che voi ragazzi avete fatto.

[AGGIORNARE]

Quindi grazie a faunzy su GitHub, ho un po ‘di comprensione sul controllo del programma utente in Rails, ma non sono ancora sicuro se questo è il modo migliore per farlo in Rails 3. Ma ecco cosa ho ottenuto lontano:

    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 

    C’è una libreria ruby ​​libreria su GitHub: https://github.com/gshutler/useragent

    Lo uso da solo, e funziona come pubblicizzato finora. Per il tuo caso d’uso, potresti probabilmente chiamare la libreria da un metodo di supporto nel tuo progetto Rails o qualcosa di simile.

    Detto questo, non sono completamente sicuro che HTTP_USER_AGENT sia esposto ai metodi helper di Rails. Nel caso non sia esposto, puoi sempre esporre un metodo di controllo come helper (usando AbstractController::Helpers::ClassMethods#helper_method ).

    La gem del browser è specificamente progettata per il rilevamento del browser in Rails.

    Prova request.env['HTTP_USER_AGENT'] , questo restituirà l’agente utente del tuo cliente. C’è anche un veloce aiuto pubblicato da Hubert Łępicki