2013-07-10 23 views
2

我是Rails的新手,想要了解它是如何工作的。我想通過從瀏覽器的HTTP請求到Rails HTTP響應的調試器。我在Rails :: Application#調用方法中運行pry-debugger,其中env - 解析了HTTP請求。嘗試通過調試器瞭解軌道

222: def call(env) 
223: 
224: env["ORIGINAL_FULLPATH"] = build_original_fullpath(env) 
225: => binding.pry 
226: super(env) 
227: end` 

兩個步驟後我通過超(EVN)到Rails ::引擎#調用方法(超 - 紅寶石關鍵字)

478: def call(env) 
479: => app.call(env.merge!(env_config)) 
480: end` 

下一步我希望進入app.call方法,其中後應用程序是類ActionDispatch :: Static的對象,但我出現在Rails :: Engine類的應用程序方法中

467: def app 
468: @app ||= begin 
469:  config.middleware = config.middleware.merge_into(default_middleware_stack) 
470:  config.middleware.build(endpoint) 
471: => end 
472: end 

爲什麼?我做錯了什麼?

+0

如果您想了解rails,請閱讀「製作Rails應用程序」一書。對於rails應用程序的很多部分都有很好的解釋。 –

+0

你使用了什麼命令? 「下一步」還是「步驟」?你使用的是什麼版本的紅寶石? – deivid

+0

命令 - 步驟。我使用ruby 1.9和rails 3.2.13。 –

回答

1

如果你上紅寶石2.0(這不是預期的行爲),你應該嘗試的pry-byebug代替pry-debugger - 紅寶石2.0改變了一些調試API和debugger寶石(其中撬調試器依賴於)有時行爲怪異。

+0

我使用ruby 1.9.3和rails 3.2.13 –