我在binding.pry或byebug上键入next
以跳到下一行。我使用step
进入程序。我如何退步?
我一直在查看文档而没有运气。非常感谢。感谢。
答案 0 :(得分:3)
使用ByeBug时无法退后一步。
答案 1 :(得分:1)
妥协解决方案正在重新使用pry-moves执行以前的代码片段。
例如,如果您停止了Controller的操作:
def index
list = Orders.for_user(current_user)
=> binding.pry
end
现在您想了解为什么list
为空? - 你可以运行:
> debug Orders.for_user(current_user)
并检查那里发生了什么
为什么我们必须使用妥协?问题是红宝石环境并不能保持每一步的整个系统状态。大概是因为很可能你仍然会使用外部系统(例如通过API调用),这可能会改变他们的内部状态而你无法自动地回滚#34;。
答案 2 :(得分:0)
此Pry备忘单上没有列出后退或撤消步骤命令。我建议使用ctrl + c(x2),ctrl + d,将其放回您的容器中,然后再次击中绑定撬。
答案 3 :(得分:0)
您可以在binding.pry中使用上下方法
查看此处:
Frame number: 0/64
From: /Users/johnmair/ruby/rails_projects/personal_site/app/controllers/posts_controller.rb @ line 7 PostsController#index:
5: def index
6: @posts = Post.all
=> 7: binding.pry
8: end
[1] pry(#<PostsController>)> show-stack
Showing all accessible frames in stack (65 in total):
--
=> #0 index <PostsController#index()>
#1 [method] send_action <ActionController::ImplicitRender#send_action(method, *args)>
#2 [method] process_action <AbstractController::Base#process_action(method_name, *args)>
#3 [method] process_action <ActionController::Rendering#process_action(*arg1)>
<... clipped ...>
[2] pry(#<PostsController>)> up
Frame number: 1/64
Frame type: method
From: /Users/johnmair/.rvm/gems/ruby-2.0.0-p0/gems/actionpack-3.2.8/lib/action_controller/metal/implicit_render.rb @ line 4 ActionController::ImplicitRender#send_action:
3: def send_action(method, *args)
=> 4: ret = super
5: default_render unless response_body
6: ret
7: end
[3] pry(#<PostsController>)>