2008-10-24 5 views
6

J'essaye de détecter des agents d'utilisateur de Blackberry dans mon application, qui fonctionne très bien dans ma version de développement. Mais rien ne se passe quand je redéploie l'application en production.Rails: La détection d'agent utilisateur fonctionne en développement mais pas en production?

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> 

J'ai essayé de vider le cache à l'aide rake tmp: cache: clair et remis en marche bâtards à quelques reprises. Apparemment, le HTTP_USER_AGENT revient en production. J'utilise Nginx avec un cluster mongrel.

Répondre

2

Utilisez-vous Apache ou nginx devant votre (vos) bâtard (s)?

Enregistrez-vous l'agent utilisateur? Ceci est de mon 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

J'utilise nginx avec un groupe bâtarde. – dMix

+0

pouvez-vous poster votre conf nginx dans un sens ou un pastie? –

+0

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

44

Essayez:

request.user_agent 
+0

Ceci n'est pas documenté dans APIdock, mais cela fonctionne. –

Questions connexes