2008-10-24 16 views
6

Estoy intentando detectar agentes de usuario de Blackberry en mi aplicación, lo que funciona bien en mi versión de desarrollo. Pero no ocurre nada cuando vuelvo a implementar la aplicación en producción.Rieles: la detección del agente de usuario funciona en el desarrollo pero no en la producción.

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> 

He intentado borrar la memoria caché utilizando rastrillo tmp: cache: clear y se reinicia mongrel un par de veces. Aparentemente, HTTP_USER_AGENT vuelve a cero en producción. Estoy usando Nginx con un clúster mestizo.

Respuesta

2

¿Está utilizando Apache o nginx delante de su (s) mestizo (s)?

¿Está iniciando sesión en user_agent? Esto es de mi 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"'; 
+0

estoy usando nginx con un grupo mestizo. – dMix

+0

¿puedes publicar tu nginx conf en un gist o un pastie? –

+0

nginx conf: http://gist.github.com/19464 – dMix

44

Probar:

request.user_agent 
+0

Esto no está documentado en APIdock, pero funciona. –

Cuestiones relacionadas