Replace IRB with Pry (in your Gemfile) and Byebug with pry-byebug.
gem 'pry-rails', group: [:development, :test]
gem 'pry-byebug', group: [:development, :test]Put pry somewhere in your code to start pry session
def my_method
pry
...
end- Show method source
pry> $ object.method
# or class instance method
pry> $ Class#method
# or class static method
pry> $ Class.method- Show method docs
pry> ? object.method
# or class instance method
pry> ? Class#method
# or class static method
pry> ? Class.method- Show object methods and instance variables
pry> ls object
# or only public methods
pry> ls -m object
# or grep by name
pry> ls -G has_ object
# or instance variables
pry> ls -i object- Move between objects
pry> cd user
pry(User):1> self
=> User
# switch back
pry(User):1> cd ..
# or switch to the top
pry(User):1> cd /- Stop PRY session
# if you're in the top scope
pry> exit
# otherwise
pry> exit-all
# or
pry> !!!- Show routes
pry> show-routes- Show models info
pry> show-models
pry> show-model User
# or search model by attributes
pry> show-models -G password- Show controller routes
pry> find-routes UsersController- Start debug session
# somewhere in your code
binding.pry- Navigation
# step into the next line/method
pry> step
# or step multiple times
pry> step 3
# step over to the next line/method
pry> next
# or
pry> next 2
# exit current stack frame
pry> finish
# move the stack frame up/down
pry> up
pry> down
pry> up 3
pry> down 4
# continue to the next breakpoint
pry> continue
# or
pry> exit- Breakpoints
# add breakpoint by the line number
pry> break /path/to/project/app/models/user.rb:22
# or by class and method name
pry> break User#admin?
# disable all breakpoints
pry> break --disable-all
# disable by number
pry> break -d 1
# enable by number
pry> break -e 1
# breakpoint with condition
pry> break User#my_method --condition 4 id == 2 # breaks only if id equals 2- Save page as html
# Change output dir
Capybara.save_and_open_page_path = "./tmp/capybara"
# Add to your code to save current page state
save_page
# or save and open saved page in your browser
save_and_open_pageHow to open saved page when using VM.
- Save page as image
save_screenshot('path/to/my.png')- Pause test server and login to test session
# Setup Capybara server (somewhere in acceptance_helper)
Capybara.server_port = 3000 # or everything you want)
Capybara.server_host = "0.0.0.0" # to access server running within VM
# in your test code
pry # simply start PRY session
# and then open browser and login with current user credentials# view.erb.js
debugger;
$('.my-link').hide()
...