Rails: обнаружение агента пользователя работает в разработке, но не в производстве? - PullRequest
6 голосов
/ 24 октября 2008

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

application_helper.rb

  def blackberry_user_agent?
    request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/(Blackberry)/]
  end

application.html.erb

<% if blackberry_user_agent? -%>
<div class="message">
<p>Using a Blackberry? <a href="http://mobile.site.ca/">Use the mobile optimized version</a>.</p>
</div>

Я пытался очистить кеш с помощью rake tmp: cache: clear и перезапустил mongrel несколько раз. Очевидно HTTP_USER_AGENT возвращается ноль в производстве. Я использую Nginx с кластером беспородных.

Ответы [ 2 ]

44 голосов
/ 29 октября 2008

Попробуйте:

request.user_agent
2 голосов
/ 24 октября 2008

Используете ли вы Apache или nginx перед своими монгрелами?

Вы регистрируете user_agent? Это из моего nginx.conf:

log_format main '$remote_addr - $remote_user [$time_local] $request '
                  '"$status" $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "http_x_forwarded_for"';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...