Browser detection with Rails?

Andi Geheim wrote:

hi

I can't find any posibility to detect the browser with rails so i tried javascript.

Any ideas?

Greeting Chaos

Did you try using request.env['HTTP_REFERER']? I think this can be used to detect the browser type. Not sure what all the info that this returned but I think browser type was one of them.

-S

I once used something like this:

                 def client_browser_name                           user_agent = request.env['HTTP_USER_AGENT'].downcase                           if user_agent =~ /msie/i                                   "Internet Explorer"                           elsif user_agent =~ /konqueror/i                                   "Konqueror"                           elsif user_agent =~ /gecko/i                                   "Mozilla"                           elsif user_agent =~ /opera/i                                   "Opera"                           elsif user_agent =~ /applewebkit/i                                   "Safari"                           else                                   "Unknown"                           end                   end

Hi Andi,

where in your Rails application did you place this method? And from where did you call this method? In other words, how did you use this code?

Thanks in advance.

Walter

Walter Lockhart wrote:

Hi Andi,

where in your Rails application did you place this method? And from where did you call this method? In other words, how did you use this code?

Thanks in advance.

Walter

On Aug 7, 7:24�pm, Andi Geheim <rails-mailing-l...@andreas-s.net>

Hi Walter,

I placed the method in the application_helper.rb in the app/helpers directory.

Then I call the method in the application layer in app/views/layer/application.rb with <% client_browser_name %>. But you can call this method also in every other view.

Ask if you have still questions.

Greetings Andi

Hi,

I am using this code based on the javascript browser detection code in the open source ExtJS framework (ExtJS.com) and converted to Rails:

  def getBrowser(bt)     rs=false     ua=request.env['HTTP_USER_AGENT'].downcase     isOpera = ua.index('opera') ? true : false     isSafari = (ua =~ /webkit|khtml/) ? true : false     isSafari3 = (ua.index('webkit/5') ? true : false     isGecko = (!isSafari and ua.index('gecko')) ? true : false     isGecko3 = (!isSafari and ua.index('rv:1.9')) ? true : false     isIE = (!isOpera and ua.index('msie')) ? true : false     isIE7 = (!isOpera and ua.index('msie 7')) ? true : false     case bt       when 0 #isKonqueror         if ua.index('konqueror') then rs=true end       when 1 #isOpera         rs=isOpera       when 2 #isSafari         rs=isSafari       when 3 #isSafari2         rs=isSafari && !isSafari3       when 4 #isSafari3         rs=isSafari3       when 5 #isIE         rs=isIE       when 6 #isIE6         rs=isIE && !isIE7       when 7 #isIE7         rs=isIE7       when 8 #isGecko         rs=isGecko       when 9 #isGecko2         rs=isGecko && !isGecko3       when 10 #isGecko3         rs=isGecko3       when 11 #isWindows         if ua.index('windows') or ua.index('win32') then rs=true end       when 12 #isMac         if ua.index('macintosh') or ua.index('mac os x') then rs=true end       when 13 #isAir         if ua.index('adobeair') then rs=true end       when 14 #isLinux         if ua.index('linux') then rs=true end       when 15 #isSecure         s = request.env['SERVER_PROTOCOL'].downcase         if s.index('https') then rs=true end     end     rs   end