2009-05-29 7 views
3

Quelqu'un sait-il pourquoi, lors de l'utilisation ruby-debug en appelant debugger dans une méthode appelée comme before_filter, le params et session hash ne sont pas définis?params non définies et hash de session dans before_filter

class MyExampleController < ActionController::Base 

    before_filter :test_hashes 

    def test_hashes 
    pp session  
    pp params #both work as expected.. 

    debugger #calling the debug console 
    end 

    def index 
    #whatever.. 
    end 

end 

#the rdb console 
(rdb:5) pp params 
NameError Exception: undefined local variable or method 'params' for #<ActionController::Filters::BeforeFilter:0x3eafda0> 
(rdb:5) pp session 
NameError Exception: undefined local variable or method 'session' for #<ActionController::Filters::BeforeFilter:0x3eafda0> 

Est-ce un comportement normal ou est-ce que je fais quelque chose de mal?

Répondre

3

Essayez de mettre un B.S. ligne après l'appel au débogueur et voir ce qui se passe.

+0

A b.s. ligne..? J'ai peur de ne pas comprendre .. – andi

+0

un littéral numérique comme 1 ou quelque chose comme ça. b.s. comme dans les conneries. – jshen

+0

Je pensais que vous faisiez référence à cette BS, mais je ne pouvais pas voir comment cela pouvait-il faire du bien. :) Mais j'ai essayé et ça a marché! Je ne peux pas le croire! Comment venir?! Avez-vous une explication raisonnable? Est-ce un bug? – andi

0

Aucune idée pourquoi il ne fonctionne pas, mais vous pouvez obtenir aux variables par controller.params et controller.session