44

嗨,我已经安装了 Pry 来进行一些很棒的调试,并且之前可以正常工作,但是当我使用“下一步”进入代码时,我收到以下错误:

SyntaxError: (eval):2: Can't escape from eval with next

正在使用的代码:

def create
    binding.pry
    build_resource(sign_up_params)

    if resource.save
      yield resource if block_given?
      if resource.active_for_authentication?
        set_flash_message :notice, :signed_up if is_flashing_format?
        sign_up(resource_name, resource)
        respond_with resource, :location => after_sign_up_path_for(resource)
      else
        set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_flashing_format?
        expire_data_after_sign_in!
        respond_with resource, :location => after_inactive_sign_up_path_for(resource)
      end
    else
      clean_up_passwords resource
      respond_with resource
    end
  end

其他人遇到过这个问题吗?

4

4 回答 4

64

请确保安装“pry-nav”gem。

我有同样的错误,因为我假设导航命令包含在“pry-rails”gem 中。

添加gem 'pry-nav'您的 Gemfile,然后运行bundle install​​.

于 2014-04-01T16:21:25.430 回答
25

您现在可以使用pry-byebug gem(对于 Ruby >= 2.0)或pry -debugger gem(对于 Ruby <= 1.9)。

将它与pryGemfile 中的 gem 一起使用:

# Gemfile
gem 'pry'
gem 'pry-byebug'
于 2016-06-22T18:13:56.697 回答
1

我有一个类似的问题,在我的情况下,问题得到了解决,因为我需要这些宝石。例如:

group :development, :test do
  ...
  gem 'pry',                                require: true
  gem 'pry-byebug',                         require: true
  gem 'pry-doc',                            require: true
  gem 'rspec-rails',                        require: false
  ...
end
于 2021-12-09T20:59:33.327 回答
-2

我相信这里的问题是你在一个块内调试,所以当你在它里面时你不能调用next

于 2016-02-05T12:12:14.523 回答