I downloaded asdf the other day and am trying to use it with a ruby on rails project I downloaded from Github.When I run asdf install, I get this response:

firebase 9.10.0 is already installedruby 2.7.2 is already installed

Then I run rails s :

No preset version installed for command railsPlease install a version by running one of the following:asdf install ruby 2.7.2or add one of the following versions in your config file at /Users/******/Desktop/****/.tool-versionsruby 3.0.1

The project runs on ruby 2.7.2.

.tool-versions:

ruby 2.7.2node 12.18.3

I installed asdf with homebrew and use oh-my-zhs with the asdf plugin.

EDIT:running

asdf install ruby 2.7.2

just says

ruby 2.7.2 is already installed
11

Best Answer


You need to reshim ruby. Run asdf reshim ruby and then try running rails s again.

For people experiencing this issue, who've installed asdf via Homebrew and who are using the standard ZSH shell (no oh-my-zsh plugins), don't forget to source the asdf bash script:

echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc

For RubyMine users

If you run the terminal commands inside of your integrated RubyMine terminal, nothing will change until you change the project SDK to the newly installed version. After restarting your terminal, everything should work as expected.

Here's where you can find the setting, check the box next to the sdk you want to use for the project:enter image description here

The following steps given by purplespline that I found in this Reddit thread worked for me:

asdf exec gem install rails

then you should be able to run other rails commands.

If Ruby 2.7.2 is already in your .tool-versions file, you can fix this by simply running

$ bundle

This will install the correct version of the Rails gem and everything should work again.

Try looking at the output of shim-versions first and you will most likely see that Ruby 2.7.2 is there, but Rails 2.7.2 is not:

$ asdf shim-versions railsruby 2.7.0$ asdf shim-versions rubyruby 2.7.2ruby 2.7.0

You should install bundle gem first

gem install bundle

then you can run bundle or bundle install

On my end I did not export or add this on my zshrc

. /opt/homebrew/opt/asdf/libexec/asdf.sh

And resource

source ~/.zshrc

I had a similar issue and I just reinstalled rails.

gem install rails

for diagnostics, please check out outputs of

which ruby

and

ruby --version

in the working directory of your project. If it indeed shows you ruby version 2.7.2, then run "gem install rails" or ("bundle install" if gemfile.lock is present) from this working directory again.

One common mistake is not to open new shell after modification of shell config files. Also zsh requires to run "rehash" command if some program is installed at different path, but reopening shell will solve that.

One more tip: check if you have updated .bashrc or .zshrc as in the installation guide.

This is what worked for me. I had forgotten to bundle after updating.

asdf plugin-update rubyasdf install ruby 3.1.4bundle