If you’re using the Spring gem, then you should have your /bin directory first in your path.
Using a .envrc file
Why
It’s critical that you’re actually using the spring-ified commands. The bin stubs in the bin directory have been modified to use Spring. However, it’s super easy to accidentally not use them, as your path probably has the binstub in the gems directory in your path. Even running spring status is typically incorrect (and slow). Run the command which -a spring and you’ll probably see that spring comes from your gem directory. You can either always remember to prefix the commands with bin/ or you can create a .envrc file.
For a quick test, run time rake routes > /dev/null twice. If spring is working correctly, then the second run is less than a second usually.
Also, which <command> and type <command>, like which rspec, are useful to see if your .envrc is being used.
How
Create a file at the top of the project called .envrc containing:
PATH_add bin
Save the file and run the command direnv allow
For more info on .envrc, see https://direnv.net/.
IMPORTANT for RVM users
The PATH_add bin doesn’t work unless you add this line to your ~/.rvmrc:
rvm_project_rvmrc=0
Without that line, RVM will sneak in the last path change to put it’s path before the /bin directory! So that’s the secret sauce with RVM.