49

Hi I've installed Pry to do some awesome debugging and had it working before but when I step into the code with 'next' I get the following error:

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

Code being used:

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

Has anyone else had this issue?

the Tin Man
  • 158,662
  • 42
  • 215
  • 303
Shaun Frost Duke Jackson
  • 1,256
  • 1
  • 10
  • 22

5 Answers5

70

Please make sure to install the 'pry-nav' gem.

I had the same error because I made the assumption that navigation commands were included into the 'pry-rails' gem.

Add gem 'pry-nav' in your Gemfile, then run bundle install.

the Tin Man
  • 158,662
  • 42
  • 215
  • 303
Aurelien Porte
  • 2,692
  • 27
  • 32
  • 7
    How is this answer not everywhere? – Stephen Corwin Apr 27 '14 at 18:24
  • 7
    On [pry-nav](https://github.com/nixme/pry-nav) pages it is now suggested to use [pry-byebug](https://github.com/deivid-rodriguez/pry-byebug) gem (for Ruby >= 2.0) or [pry-debugger](https://github.com/nixme/pry-debugger) gem (for Ruby <= 1.9). – exmaxx Jun 22 '16 at 18:17
  • Didn't work for me. I still have the same problem. – Jeff Saremi Jan 22 '23 at 19:36
28

You can now use pry-byebug gem (for Ruby >= 2.0) or pry-debugger gem (for Ruby <= 1.9).

Use it together with pry gem in your Gemfile:

# Gemfile
gem 'pry'
gem 'pry-byebug'
exmaxx
  • 3,252
  • 28
  • 27
1

I had a similar issue, in my case the problem was solved because I needed to require those gems. For example:

group :development, :test do
  ...
  gem 'pry',                                require: true
  gem 'pry-byebug',                         require: true
  gem 'pry-doc',                            require: true
  gem 'rspec-rails',                        require: false
  ...
end
Jose Paez
  • 747
  • 1
  • 11
  • 18
0

This is what solved the problem. Even the answer here didn't work for me.

I had to add require 'pry-byebug' to my spec file!

Jeff Saremi
  • 2,674
  • 3
  • 33
  • 57
-3

I believe the issue here is that you're debugging inside a block, so you cannot call next while you're inside of it.