Forum: Rails-ES Deshabilitar sesiones para los robots

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
0fdce938a28a604fd5613a68b0d78fcb?d=identicon&s=25 Jose vicente Ribera pellicer (joripel)
on 2009-05-06 12:30
Ayer implementamos un metodo para deshabilitar las sesiones de los
robots, la informacion la sacamos del libro Rails way, es basicamente
esto:

http://kungfu-tech.blogspot.com/2008/05/disable-se...

Tras ojear este articulo del mismo Obie:

http://jroller.com/obie/entry/wrestling_with_the_bots


Me cree mi propia linea de codigo con una recopilacion de robots:

class ApplicationController < ActionController::Base

 # Explorar el log para mas robots
   session :off, :if => lambda {|req| req.user_agent =
~/(Google|msnbot|twiceler|alexa|Sapphire|Gigabot|speedy_spider|Yandex|Yanga|Jeeves|Baidu|bot|SiteUptime|Slurp|WordPress|ZIBB|ZyBorg)/i}


Ayer funciono a las mil maravillas y en el servidor esta funcionando sin
problemas. Pero hoy tras haber estado un tiempo recopilando informacion
sobre otros temas y problemas que tenemos me he llevado una sorpresa al
que rer imiciar el localhost. El problema lo da la linea de codigo que
deshabilita las sesiones para los robots. Os muestro lo que aparece en
el log:

Rendering
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/templates/rescues/layout.erb
(method_not_allowed)
/!\ FAILSAFE /!\  mié, 06 may 2009 12:14:42 +0200
  Status: 500 Internal Server Error
  undefined method `user_agent=' for
#<ActionController::CgiRequest:0x4a1d87c>
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/cgi_process.rb:149:in
`method_missing'
    /Users/jose/rankia/app/controllers/application.rb:52
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/session_management.rb:107:in
`call'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/session_management.rb:107:in
`session_options_for'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/session_management.rb:106:in
`each'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/session_management.rb:106:in
`session_options_for'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/session_management.rb:135:in
`set_session_options_without_components'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/components.rb:158:in
`set_session_options'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/session_management.rb:129:in
`process'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/base.rb:389:in
`process'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/dispatcher.rb:149:in
`handle_request'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/dispatcher.rb:107:in
`dispatch'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/dispatcher.rb:104:in
`synchronize'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/dispatcher.rb:104:in
`dispatch'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/dispatcher.rb:120:in
`dispatch_cgi'
    /opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/dispatcher.rb:35:in
`dispatch'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:76:in
`process'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in
`synchronize'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in
`process'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:159:in
`orig_process_client'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in
`each'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in
`orig_process_client'
    /Users/jose/rankia/vendor/plugins/spawn/lib/patches.rb:53:in
`process_client'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in
`run'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in
`initialize'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in
`new'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in
`run'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in
`initialize'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in
`new'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in
`run'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:282:in
`run'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in
`each'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in
`run'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in
`run'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in
`run'
    /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
    /opt/local/bin/mongrel_rails:19:in `load'
    /opt/local/bin/mongrel_rails:19


Si comento la linea en cuestion localhost se inicia sin problemas, pero
claro esta subido al servidor y funciona sin problemas...alguien sabe
porque puede ser?
0fdce938a28a604fd5613a68b0d78fcb?d=identicon&s=25 Jose vicente Ribera pellicer (joripel)
on 2009-05-06 12:51
El error que da es que no reconoce el metodo user_agent. Pero no tiene
sentido, a mis compañeros tienen acceso a localhost y todos hicieron un
update despues de subirlo al servidor....es mas...termino de hacer un
update...y sigue sin irme...:(

Por lo que estoy viendo el CgiRequest esta relacionado con las
sesiones
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2009-05-06 13:07
(Received via mailing list)
2009/5/6 Jose vicente Ribera pellicer
<ruby-forum-incoming@andreas-s.net>

> El error que da es que no reconoce el metodo user_agent. Pero no tiene
> sentido, a mis compañeros tienen acceso a localhost y todos hicieron un
> update despues de subirlo al servidor....es mas...termino de hacer un
> update...y sigue sin irme...:(
>
>
No, no te reconoce el método user_agent=, que es distinto. ¿No querrás
hacer
comparación (==) en vez de asignación (=) ? ;)
0fdce938a28a604fd5613a68b0d78fcb?d=identicon&s=25 Jose vicente Ribera pellicer (joripel)
on 2009-05-06 13:16
> No, no te reconoce el método user_agent=, que es distinto. ¿No querrás
> hacer
> comparación (==) en vez de asignación (=) ? ;)

Gracias, el problema es que tenia picado esto req.user_agent = ~ ... y
con el espacio en blanco entre medio se volvia loco. Mira que habre
mirado la liena unas cuantas veces pero no lo veia... y si no hubiese
sido por tu comentario aun estaria investigando porque podria
ser...simplemete gracias.

Salu2
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2009-05-06 13:31
(Received via mailing list)
2009/5/6 Jose vicente Ribera pellicer
<ruby-forum-incoming@andreas-s.net>

>
Um, de hecho, ví el = y no me fijé más, así que podría haberte explicado
bien el problema con la virgulilla a la primera ;)


Manuel,
http://simplelogica.net + http://www.logicola.net/
This topic is locked and can not be replied to.