Методы Обнаружения Браузера Rails



Привет всем, мне было интересно, какие методы являются стандартными в отрасли, чтобы сделать обнаружение браузера в Rails? Есть ли где-нибудь gem, библиотека или пример кода, который может помочь определить браузер и применить класс или идентификатор к элементу body (X)HTML? Спасибо, мне просто интересно, что все используют и есть ли принятый способ сделать это?



Я знаю, что мы можем сделать пользователь.агент и разобрать эту строку, но я не уверен, что это приемлемый способ чтобы сделать обнаружение браузера.



кроме того, я не пытаюсь обсуждать обнаружение функций здесь, я прочитал несколько ответов для этого на StackOverflow, все, что я прошу, это то, что вы, ребята, сделали.



[обновление]



спасибо faunzy на GitHub я немного понимаю, как проверить пользовательский агент в Rails, но все еще не уверен, что это лучший способ сделать это в Rails 3. Но вот что я получил до сих пор:



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
601   3  

3 ответов:

есть библиотека ruby библиотека на GitHub:https://github.com/gshutler/useragent

Я использую его сам, и он работает, как рекламируется до сих пор. Для вашего варианта использования вы, вероятно, можете вызвать библиотеку из вспомогательного метода в вашем проекте Rails или что-то подобное.

тем не менее, я не совсем уверен, если HTTP_USER_AGENT подвергается воздействию вспомогательных методов Rails. В случае, если он не предоставляется, вы всегда можете предоставить метод контроллера в качестве помощника (by используя AbstractController::Helpers::ClassMethods#helper_method).

The обозреватель самоцвет специфически конструирован для обнаружения браузера в рельсах.

попробовать request.env['HTTP_USER_AGENT'], это вернет агент пользователя клиента. Есть также быстрый помощник, опубликованный Hubert Łępicki

Comments

    Ничего не найдено.