Guard 护栏未提供用于捆绑的REPL.pry

Guard 护栏未提供用于捆绑的REPL.pry,guard,pry,Guard,Pry,我正在使用guard rails来运行我的rails服务器,我的问题是当我添加binding.pry时无法访问REPL From: /home/martinr/code/app/controllers/tools_controller.rb @ line 2 ToolsController#index: 2: def index => 3: binding.pry 4: @end_date = Date.today.to_s 5: @start_da

我正在使用guard rails来运行我的rails服务器,我的问题是当我添加binding.pry时无法访问REPL

From: /home/martinr/code/app/controllers/tools_controller.rb @ line 2 ToolsController#index:

    2: def index
 => 3:   binding.pry
    4:   @end_date = Date.today.to_s
    5:   @start_date = Date.today.months_ago(3).to_s
    7: end

[1] pry(#<ToolsController>)> 
我的警卫文件:

guard 'rails', :debugger => true do
  watch('Gemfile.lock')
  watch(%r{^(config|lib)/.*})
end

我正在尝试一个类似的东西,但也无法让它工作。问题似乎是,从标准输入中读取数据不会阻塞,因此Pry不会阻塞。从STDIN读取的任何数据都会立即返回

rspec -X console.rb
文件如下:

require 'spec_helper'

describe 'console' do
  it 'opens!' do
    Pry.config.input = STDIN
    Pry.config.output = STDOUT
    puts STDIN.closed?  # returns false
    binding.pry # returns right away, does not block
    gets # returns right way, does not block
  end
end

我用Guard和Spork设置了rails环境,发现binding pry在Guard中的行为异常。如果我在代码中插入binding.pry,然后guard重新启动测试,则不会进行交互式调试。但如果我退出并再次启动警卫,它就会正常工作并正确地进入交互模式

然而。。。如果我移除binding.pry线,guard将按预期重新运行测试,但会在绑定线原来的位置断开,即使它不再存在

似乎每次插入或移除撬锁时都必须重新启动防护装置


令人恼火,但总比在测试中无法窥探要好。

你是什么意思?你不能键入任何东西或什么?我的意思是,它似乎加载了REPL并继续执行程序。这并没有给你一个与REPL互动的机会。这方面有什么新闻吗?这真是太好了。不知道是不是这样,但你们有没有看到Guard的Wiki GitHub?
require 'spec_helper'

describe 'console' do
  it 'opens!' do
    Pry.config.input = STDIN
    Pry.config.output = STDOUT
    puts STDIN.closed?  # returns false
    binding.pry # returns right away, does not block
    gets # returns right way, does not block
  end
end