【发布时间】:2015-03-17 22:00:08
【问题描述】:
使用 gem 'pry-rails'。我运行bundle exec rails c production 并执行gem-cd mongoid。然后通过运行edit lib/mongoid/sessions/storage_options.rb 打开 storage_options.rb。我在某行放置了一个断点(binding.pry)并关闭文件。我做了一些测试并调试好。当我回来并摆脱断点时,尽管binding.pry 不再存在(至少我在控制台上看到的)以及当我编辑文件时,Pry 将继续在同一点停止:
之前:
From: /Users/borjagvo/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/bundler/ruby/2.1.0/gems/mongoid-4.0.2/lib/mongoid/sessions/storage_options.rb @ line 134 Mongoid::Sessions::StorageOptions::ClassMethods#__evaluate__:
129: # @return [ Symbol ] The value as a symbol.
130: #
131: # @since 3.1.0
132: def __evaluate__(name)
133: binding.pry
=> 134: return nil unless name
135: name.respond_to?(:call) ? name.call.to_sym : name.to_sym
136: end
137: end
138: end
139: end
140: end
[1] pry(User)>
之后:
From: /Users/borjagvo/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/bundler/ruby/2.1.0/gems/mongoid-4.0.2/lib/mongoid/sessions/storage_options.rb @ line 134 Mongoid::Sessions::StorageOptions::ClassMethods#__evaluate__:
129: # @return [ Symbol ] The value as a symbol.
130: #
131: # @since 3.1.0
132: def __evaluate__(name)
133: return nil unless name
=> 134: name.respond_to?(:call) ? name.call.to_sym : name.to_sym
135: end
136: end
137: end
138: end
139: end
[1] pry(User)>
为什么会这样?如何“删除”断点?
【问题讨论】:
-
我们通常只窥探`开发`和`测试`环境。我认为重新启动控制台/服务器必须解决这个问题。确保您对该文件具有写入权限。 :)
-
@cba_bhusal 谢谢,但如果我没有写访问权限,它不会让我一开始就坚持 binding.pry,对吧?但是,我有写权限。此外,重新启动控制台并不能解决此问题。我以前遇到过这种情况,在我拥有一个文件的地方,我插入 binding.pry,直到我重新启动它才会消失。然而,这似乎有所不同。重启后 pry 似乎没有被清除。
标签: ruby-on-rails ruby debugging pry