# What's the best way to detect browser?

**URL:** <https://www.ruby-forum.com/t/whats-the-best-way-to-detect-browser/85374>\
**Category:** Rails\
**Created:** [February 13, 2007, 1:22am UTC](https://www.ruby-forum.com/t/whats-the-best-way-to-detect-browser/85374 "2007-02-13T01:22:41Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![patcito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@patcito](https://www.ruby-forum.com/u/patcito)\
**Post date:** [February 13, 2007, 1:22am UTC](https://www.ruby-forum.com/t/whats-the-best-way-to-detect-browser/85374/1 "2007-02-13T01:22:41Z")

</div>

Hey all,  
I’m looking for the best way to detect browser, especially I’m looking  
to distinguish browsers as three different groups:  
ie6 and older, netscape4 and older browsers  
ie7  
khtml/webkit/gecko/opera browsers

any idea?

thanx in advance

Pat

---

<div class="post-metadata">

**Author:** ![patcito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@patcito](https://www.ruby-forum.com/u/patcito)\
**Post date:** [February 13, 2007, 4:43am UTC](https://www.ruby-forum.com/t/whats-the-best-way-to-detect-browser/85374/2 "2007-02-13T04:43:03Z")

</div>

Don’t know if it’s the best way, but you can get the User-Agent in the  
controller with request.env[‘HTTP\_USER\_AGENT’].

b

---

<div class="post-metadata">

**Author:** ![patcito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@patcito](https://www.ruby-forum.com/u/patcito)\
**Post date:** [February 13, 2007, 6:35pm UTC](https://www.ruby-forum.com/t/whats-the-best-way-to-detect-browser/85374/3 "2007-02-13T18:35:28Z")

</div>

Will this work?

case request.user\_agent  
when /(gecko|opera|konqueror|khtml|webkit)/i  
return :gecko  
when /msie\s+7.\d+/i  
return :ie7  
else  
return :older\_browser  
end

---

<div class="post-metadata">

**Author:** ![patcito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@patcito](https://www.ruby-forum.com/u/patcito)\
**Post date:** [February 13, 2007, 9:24pm UTC](https://www.ruby-forum.com/t/whats-the-best-way-to-detect-browser/85374/4 "2007-02-13T21:24:40Z")

</div>

Check out [JavaScript - Browser detect](http://www.quirksmode.org/js/detect.html) for a nice piece of  
Javascript code to detect on the client side.

---

<div class="post-metadata">

**Author:** ![patcito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@patcito](https://www.ruby-forum.com/u/patcito)\
**Post date:** [February 13, 2007, 11:46pm UTC](https://www.ruby-forum.com/t/whats-the-best-way-to-detect-browser/85374/5 "2007-02-13T23:46:07Z")

</div>

[http://www.agilewebdevelopment.com/plugins/browser\_detect](http://www.agilewebdevelopment.com/plugins/browser_detect)
