Il fut un temps qu'une ligne comme celui-ci dans le contrôleur d'application désactiverait sessions entièrement pour une requête:Comment désactiver les sessions Rails pour les robots d'indexation?
session :off, :if => Proc.new {|req| req.user_agent =~ BOT_REGEX}
Avec 3.x Rails, cela est soit obsolète ou ne fonctionne plus. Je me rends compte que le nouveau concept est que les sessions sont chargées paresseusement, mais le flux d'exécution à travers l'application utilise/vérifie les sessions même si c'est un robot Web.
Y a-t-il un nouveau mécanisme qui pourrait être utilisé pour désactiver les sessions à la demande?
Huh - c'est vraiment intéressant. Comment sais-tu cela? C'est-à-dire, comment pourrais-je vérifier cela pour moi-même? Je suppose que le code source pour le SessionHash.load_for_write! méthode? – Dogweather
Vous pouvez tester manuellement en configurant votre agent utilisateur sur un élément qui sera détecté en tant que robot (par exemple [en chrome] (http://browserfame.com/314/change-user-agent-chrome-browser)), en supprimant les cookies de session existants que vous pouvez avoir, et la navigation sur votre site. Chaque journal Rails d'action doit avoir la ligne "No session found" - ou vous pouvez regarder la table de vos sessions si vous utilisez ActiveStore SessionStore et vérifier qu'aucun nouvel enregistrement de session n'est ajouté à la base de données. – jordoh
Merci, mais ce que je me demande, c'est comment avez-vous trouvé cette solution? Comment savez-vous que vous pouvez faire ce genre de remplacement de code? Et enfin, où est le meilleur endroit pour placer ce code, pour travailler dans la séquence de démarrage de Rails? – Dogweather