- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很困惑需要安装哪些 gems 才能在 Rails 4.2 项目中正确运行 Pry。直到最近我似乎都过得很好。出于某种原因,binding.pry
现在,每当我尝试通过 next
单步执行控制台 session 时,似乎都会吐出来, step
等在命令行中。它会抛出一个丑陋的堆栈跟踪,然后在代码中向我展示相同的点,而没有进一步。第二个之后 next
命令,它抛出相同的堆栈跟踪并退出,将执行返回到本地主机服务器。我在浏览器页面上收到运行时错误 No frames collected
.
如果我注释掉 binding.pry
在我的代码中,一切正常。所以我强烈怀疑我的 Pry 配置有问题。似乎 Pry 有几十种变体,但没有明确指导应该安装哪些(哪些),哪些可能会发生冲突,等等。
这是我在调用 next
时得到的堆栈跟踪在代码到达 binding.pry
后,在 Pry 控制台中称呼:
From: /Users/me/sites/arailsapp/app/controllers/bars_controller.rb @ line 31 BarsController#edit:
29: def edit
30: binding.pry
=> 31: @bar = Bar.find(params[:id])
32: @foo = @bar.foo
33: end
[6] pry(#<BarsController>)> n
Completed 500 Internal Server Error in 2685ms (ActiveRecord: 0.0ms)
RuntimeError - No frames collected.:
pry-byebug (3.2.0) lib/byebug/processors/pry_processor.rb:122:in `perform_next'
pry-byebug (3.2.0) lib/byebug/processors/pry_processor.rb:60:in `perform'
pry-byebug (3.2.0) lib/byebug/processors/pry_processor.rb:49:in `run'
pry-byebug (3.2.0) lib/byebug/processors/pry_processor.rb:111:in `resume_pry'
pry-byebug (3.2.0) lib/byebug/processors/pry_processor.rb:69:in `at_line'
byebug (5.0.0) lib/byebug/context.rb:90:in `at_line'
app/controllers/scholarships_controller.rb:31:in `edit'
actionpack (4.2.1) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (4.2.1) lib/abstract_controller/base.rb:198:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.2.1) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (4.2.1) lib/active_support/callbacks.rb:117:in `call'
# omitting the next ~40 lines in the Rails stack...
source 'https://rubygems.org'
ruby '2.2.0'
gem 'rails', '4.2.1'
gem 'pg', '~> 0.18.2'
gem 'haml-rails', '~> 0.9.0'
gem 'sass-rails', '~> 5.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'will_paginate', '~> 3.0.7'
gem 'will_paginate-bootstrap'
gem "nilify_blanks"
gem 'filterrific', '~> 2.0.5'
gem 'chardinjs-rails'
# Install bootstrap and associated gems
gem 'bootstrap-sass', '~> 3.3.4.1'
gem 'autoprefixer-rails', '~> 5.2.0'
# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'
group :production do
gem 'rails_12factor', '~> 0.0.3'
end
group :assets do
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
end
group :development do
gem 'better_errors', '~> 2.1.1'
gem 'annotate', '~> 2.6.10'
end
group :development, :test do
gem 'pry-rails'
gem 'pry-stack_explorer'
gem 'pry-byebug'
gem 'web-console', '~> 2.0'
gem 'spring'
gem 'spring-commands-rspec', '~> 1.0.4'
gem 'rspec-rails', '~> 3.2.3'
gem 'guard-rspec', '~> 4.6.0'
gem 'sqlite3'
gem 'factory_girl_rails', '~> 4.5.0', require: false
end
group :test do
gem 'database_cleaner', '~> 1.4.1'
gem 'faker', '~> 1.4.3'
gem 'capybara', '~> 2.4.4'
gem 'launchy', '~> 2.4.3'
gem 'shoulda', '~> 3.5.0'
end
pry-stack_explorer
和
pry-byebug
gems 注释掉了...没有区别。
# ~/.pryrc
if defined?(PryByebug)
Pry.commands.alias_command 'c', 'continue'
Pry.commands.alias_command 's', 'step'
Pry.commands.alias_command 'n', 'next'
Pry.commands.alias_command 'f', 'finish'
end
# Hit Enter to repeat last command
Pry::Commands.command /^$/, "repeat last command" do
_pry_.run_command Pry.history.to_a.last
end
最佳答案
一些摆弄和几个服务器重新启动似乎已经解决了这个问题。感谢 Deivid 建议删除 pry-stack_explorer
.这是测试和开发组的 Gemfile:
group :development do
gem 'better_errors', '~> 2.1.1'
gem 'annotate', '~> 2.6.10'
end
group :development, :test do
gem 'pry-rails'
gem 'pry-byebug'
gem 'web-console', '~> 2.0'
gem 'spring'
gem 'spring-commands-rspec', '~> 1.0.4'
gem 'rspec-rails', '~> 3.2.3'
gem 'guard-rspec', '~> 4.6.0'
gem 'sqlite3'
gem 'factory_girl_rails', '~> 4.5.0', require: false
end
group :test do
gem 'database_cleaner', '~> 1.4.1'
gem 'faker', '~> 1.4.3'
gem 'capybara', '~> 2.4.4'
gem 'launchy', '~> 2.4.3'
gem 'shoulda', '~> 3.5.0'
end
关于debugging - 如何在 Rails 4.2 中正确设置 Pry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31904223/
调用pry 和调用binding.pry 有什么区别?例如: require 'pry' class Bookshop def initialize(book) @books = []
如果遇到异常(例如,如果您只是在脚本末尾放置一个 undefined variable “x”),Pry 会进入交互模式。 (此外,如果在脚本本身内您需要'pry' 并将binding.pry 放在您
我正在尝试自定义我的 Pry(使用 Pry 有一段时间了,但这是我第一次尝试创建命令。)我想创建一个自定义命令,它将获取最后五十个项目根据我的历史,我正在构建它: Pry::Commands.bloc
pry gem 和 pry-rails gem 有什么区别(在实现方面)? 最佳答案 比较它们的实现没有意义,因为它们是两个不同的东西:一个 IRb 替代品和一个使前者成为 Rails 控制台的插件。
我正在使用 pry-byebug 并且想这样写: 3.times do |i| next if i == 2 p i end 但这失败并出现错误: [1] pry(main)* next
每当我在命令行中输入 pry 时,它都会打开并显示此错误。 terminal$ pry NameError: uninitialized constant Pry::BondCompl
我正在尝试调试一个简单的 ruby 控制台脚本,但在尝试要求 pry 时出现加载错误: 我正在使用 rbenv 来管理环境。 我使用的是 Ruby 版本:2.3.1. 尝试使用 Pry '~> 0
为什么我会收到此 pry 动错误? [36] pry(main)> s = "pry" Error: Cannot find local context. Did you use `binding.p
当一个在rails-application文件夹中时,为什么不一样 $demo_app> pry -r ./config/environment 来自 $demo_app> pry -r config
我正在将我的应用程序的最新版本上传到 Windows 商店,但我的应用程序抛出错误: Package acceptance validation error: We encountered a fat
需要 pry在我的 RSpec spec_helper.rb运行我的规范给了我一堆警告。我该如何摆脱这些? /Library/Ruby/Gems/2.0.0/gems/pry-0.10.0/lib/p
我有 qt 项目 proj1,它依赖于另一个 (proj2)。 目录树是这样的: common/ `--/pr1/ proj1.pri ma
我是 Elixir 的新手,但玩得很开心! 我来自 Ruby 世界,所以开始寻找类比。并且存在调试工具pry。使用 binding.pry 我可以中断任何 session 。我在 Elixir 中发现
我从理解计算 一书中获得了以下代码。目的是改变 inspect 行为。 class Number >" end def to_s value.to_s end end 当我使用 i
当我在 pry 中使用 Tempfile 类时,我没有使用 require 它。 % pry -f pry(main)> Tempfile Tempfile 但是当在 irb 中时,我必须首先要求
我的工作站: $ uname -a Linux dsktop 3.13.0-77-generic #121-Ubuntu SMP Wed Jan 20 10:50:42 UTC 2016 x86_64
我把 binding.pry 放在我的脚本中, 但是现在当它停在断点处时, 是向我显示该信息。 出乎我的意料,如何解决? 帧数:0/11 From: /Users/me/.rbenv/versions
在 Rails 中使用 Pry,当我在代码中遇到断点时 绑定(bind).pry 我想知道我是怎么到这里的,谁给我打电话,谁给他们打电话等等。但奇怪的是我没有看到那个命令。有人知道吗? 最佳答案 要在
我想使用 IEx.pry 在我的 elixir 代码中一步一步地进行,比如 ruby 中的 byebug 或 Java 中的调试点。我尝试查看此处的文档:https://github.com/el
qmake 的*.pro 和*.pri 配置文件有什么区别? *.pro 文件中应包含哪些内容,*.pri 文件中应包含哪些内容? 最佳答案 它们的目标重用之间有一个主要区别: .pro 这通常称为项
我是一名优秀的程序员,十分优秀!