我是Rails的新手,想了解它是如何工作的。我想通过调试器从HTTP请求从浏览器到Rails HTTP响应。我在Rails :: Application#call方法中运行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`
经过两个步骤后,我通过super(evn)转到Rails :: Engine#调用方法(超级Ruby关键字)
478: def call(env)
479: => app.call(env.merge!(env_config))
480: end`
在下一步之后我期望进入app.call方法,其中app是类ActionDispatch :: Static的对象,但我出现在Rails :: Engine类的app方法中
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 :(得分:1)
如果您使用的是ruby 2.0(这不是预期的行为),您应该尝试pry-byebug
而不是pry-debugger
- ruby 2.0更改了一些调试API和debugger
gem(哪个pry-debugger依赖)有时行为奇怪。